ReactHooks如何选择使用

85 阅读1分钟

来自卡颂 image.png 自变量=>因变量变化对应视图变化,

  1. 显式指定自变量可以把因变量缓存下来,只要自变量不变始终读取缓存(否则实际会创建新的因变量)

    • useMemo缓存一个因变量,并显式地指定自变量
    • useCallback缓存一个函数类型的因变量,同样要指定依赖的自变量
    const y = useMemo(() => 2 * x + 1, [x]);
    const changeX= useCallback(() => setX(x+1));
    
  2. 当不是纯函数,使因变量输出不固定时,这个函数就是包含副作用,不仅改变视图

    • useEffect定义有副作用的因变量
    • 如根据x的值修改标题,请求数据,操作dom
  3. useReducer进阶版的useState,用Redux的理念把多个state合为一个,方便操作更多自变量

  4. 一个组件的因变量能作为另一个组件的自变量,当有多级组件

    • 在第一级组件用createContext创建context,在子级组件用useContext可以直接用一级的context
  5. useRef保存标记,起到缓存数据的作用

image.png