自定义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>
)
}