自定義hook的步驟
自定義hook的步驟
1.引入react和自己需要的hook
2.創建自己的hook函數
3.返回一個數組,數組中第一個內容是數據,第二是修改數據的函數
4.將自己定義的hook暴露出去
5.在自己的業務組件中引入並使用
通過自定義hook 模擬數據接口請求功能
utils > useLoadData.js
import React,{useState,useEffect} from 'react';
// 如何模擬數據接口請求功能
export default function useLoadData(){
const [num,setNum] = useState(0);
useEffect(() => {
setTimeout(() => {
console.log('rrr');
setNum(2)
}, 1000);
}, [])
return [num,setNum]
}
通過自定義hook Reducer的使用
import React,{useReducer} from 'react';
const store = {
age:10
}
// useReducer使用?
// 1.創建 數據倉庫store 和 管理者reducer
// 2.通過useReducer(reducer,store)來state和dispatch
const reducer = (state,action) =>{
switch (action.type) {
case 'changeAge':
return {
...state,
age:action.age
}
default:
return {
...state
};
}
}
export default function useLocalReducer(){
const [state,dispatch] = useReducer(reducer,store);
return [
state,
dispatch
]
}
在組件中引入自定義的hook,並使用
components > useReducer.js
import React from 'react';
import useLoadData from '../utils/useLoadData';
import useLocalReducer from '../utils/useLocalReducer';
export function Reducer(){
const [num,setNum] = useLoadData()
const [state,dispatch] = useLocalReducer()
return(
<div onClick={()=> dispatch({
type:'changeAge',
age:100
})}>
這是一個函數式組件---{num}--{state.age}
</div>
)
}