RN/hook/TS useState 的三种用法直接初始化值const [state, setState] useState(initialState)惰性初始化计算复杂值const [todos, setTodos] useState(() loadTodosFromStorage())基于前值更新避免异步闭包问题setTodos((prevTodos) [...prevTodos, newTodo])useContext 状态共享父组件通过Context.Provider提供value或方法子组件通过createContext创建句柄直接访问/更新父组件状态本质避免逐层传递 props实现跨组件状态管理useReducer 适用场景管理复杂状态逻辑合并多个关联的useState更新减少分散的setState调用useEffect 依赖项控制空数组[]仅在组件挂载时执行一次指定依赖[a, b, c]当a、b或c变化时触发无依赖null每次渲染后都执行分离依赖与最新值结合useEffectEvent处理部分逻辑闭包陷阱解决方案问题异步操作中无法获取最新状态解决使用useRef保存可变值使用useEffectEvent封装逻辑性能优化协作模式子组件用React.memo包裹避免不必要的渲染父组件传递 props 优化数据属性用useMemo缓存回调函数用useCallback缓存