React Hooks - 学习笔记

2019-10-25  本文已影响0人  梁坤同学

React Hooks

Hook 是能让你在函数组件中“钩入” React 特性的函数。

State Hook

Effect Hook

Effect Hook 可以让你在函数组件中执行副作用操作

React 的清除机制
useEffect(() => {
  document.title = `You clicked ${count} times`
}, [count]); // 只有当 count 的值发生改变时,才会重新执行 `document.title` 这一句

这里有一点需要重视,componentWillUnmount 只会在组件被销毁前执行一次,而 useEffect 里的函数,每次组件渲染后都会执行一遍,包括副作用函数返回的这个清理函数也会重新执行一遍。
useEffect 接受第二个数组类型的参数,仅有在数组中变量发生改变时,才会重新订阅。如果想执行只运行一次的 effect, 也就是说仅在组件挂载(componentDidMount)和卸载(componentWillUnmount时执行),可以传递一个空数组([])作为第二个参数。不过这种用法可能带来 bug,少用。

其他的 Effect Hooks

除了上文介绍的 useState 和 useEffect,react 还给我们提供了很多有用的 Hooks:
useContext useReducer useCallback useMemo useRef useImperativeMethods useMutationEffect useLayoutEffect

Hook 规则

自定义 Effect Hooks

将复用的逻辑抽离出来,哪个组件要用,就在哪个组件里面使用

上一篇下一篇

猜你喜欢

热点阅读