react16笔记(1)
继续记录一下看文档的学习笔记。
必须用到 Hook 的典型场景
需求 | 用哪个 Hook | 举例 |
---|---|---|
组件需要内部状态 | useState |
计数器、开关、输入框受控 |
组件需要在挂载/更新/卸载时执行副作用 | useEffect |
发请求、订阅事件、操作 DOM |
组件需要缓存昂贵计算结果 | useMemo |
大列表过滤、复杂计算 |
组件需要缓存回调函数引用 | useCallback |
把回调传给子组件避免重复渲染 |
组件需要读取或写入 Context | useContext |
主题、语言、当前用户 |
组件需要保存可变值但不想触发重渲染 | useRef |
存定时器 id、保存上一次值 |
组件需要自定义逻辑复用 | 自定义 Hook | useToggle , useFetch , useDebounce |
数据会变 → useState
有副作用 → useEffect
要缓存 → useMemo / useCallback
要全局透传 → useContext
要保存值但不想重渲染 → useRef
想复用逻辑 → 写自定义 Hook
不需要 Hook 的场景
纯展示组件(props 进来直接渲染):写成普通函数,无需任何 Hook。
逻辑已经在父组件里处理:子组件只负责渲染,不需要自己的 state 或 effect。
类组件:如果项目仍用 class,生命周期里写逻辑即可;但官方推荐函数组件 + Hook。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!