useMemo
useMemo
我们应该如何去正确理解useMemo
呢
function fib(n) {
console.info('计算函数被执行1')
return n < 3 ? 1 : fib(n - 2) + fib(n - 1)
}
function App() {
const [count1, setCount1] = useState(0)
const [count2, setCount2] = useState(0)
console.info('组件重新渲染了')
// 现在我们有个需求,是基于 count1 的求和
const result = fib(count1)
return (
<>
<div className="App">
根据 count1 的求和:{result}
<button onClick={() => { setCount1(count1 + 1) }}>change count1: {count1}</button>
<button onClick={() => { setCount2(count2 + 1) }}>change count2: {count2}</button>
</div>
</>
)
}
其实就是当我们需要对state
的数据进行处理的时候,可以用useMemo
了
以下这行代码,在每次组件渲染时都会执行(也就是每次state
更新的时候),所以我们需要用useMemo
包起来,使它仅在count1
改变的时候执行
const result = fib(count1)
改造如下
const result = useMemo(() => {
return fib(count1)
}, [count1])
这一路,灯火通明
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现