基本:
1.useState // 需要注意异步更新
2.useEffect // 页面加载销毁 监听 请求
3.useContext createContext 定义 provider 传递 useContext(定义的变量) 使用
额外的hook:
4.useReducer // 下一个 state 依赖于之前的 state
5.useCallback // 和计算属性原理相同 用于缓存函数
6.useMemo // 相当于计算属性 用于缓存计算结果的值
7.useRef // 获取当前组件 const = 变量 = useRef(); ref={变量}
8.useImperativeHandle //定义子组件需要传递的方法
9.useLayoutEffect // 与useEffect相同 浏览器执行绘制之前
10.useDebugValue // 调试(输出)自定义Hook中用到的状态值
注意事项:
- useEffect 是 在渲染结束后执行 useLayoutEffect 是在DOM在缓存中 没有被渲染之前执行
- useReducer使用
const initialState = {count: 0};
const [state, dispatch] = useReducer(reducer, initialState);
function reducer(state, 参数) {
switch (参数) {
return {count: state.count + 1};
default:
throw new Error();
}
}
dispatch(参数)