ReactReactHooks状态管理
React Hooks 深度解析:useState 与 useEffect 的高级用法
WyperBlog2024-12-0112 分钟
React Hooks 深度解析
React Hooks 彻底改变了我们编写 React 组件的方式。
useState 进阶
函数式更新
当新状态依赖于旧状态时,使用函数式更新:
tsxconst [count, setCount] = useState(0) // 推荐:函数式更新 setCount(prev => prev + 1) // 不推荐:直接使用当前值 setCount(count + 1)
惰性初始化
对于复杂的初始值计算:
tsxconst [state, setState] = useState(() => { // 只在首次渲染时执行 return expensiveComputation() })
useEffect 最佳实践
清理函数
tsxuseEffect(() => { const subscription = subscribe() return () => { // 清理订阅 subscription.unsubscribe() } }, [])
依赖数组
tsx// 每次渲染都执行 useEffect(() => {}) // 仅在挂载时执行 useEffect(() => {}, []) // 当依赖变化时执行 useEffect(() => {}, [dep1, dep2])
自定义 Hook
tsxfunction useLocalStorage<T>(key: string, initialValue: T) { const [value, setValue] = useState<T>(() => { const stored = localStorage.getItem(key) return stored ? JSON.parse(stored) : initialValue }) useEffect(() => { localStorage.setItem(key, JSON.stringify(value)) }, [key, value]) return [value, setValue] as const }
总结
深入理解 Hooks 的工作原理,能帮助你写出更高效的 React 代码。
觉得文章不错?点个赞吧
评论 (0)
还没有评论,来发表第一条评论吧!