采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
请问一下为什么将数据传递给 用 memo 包裹的子组件时,一定要用 useMemo 进行缓存?当数据没有缓存时,数据明明没有发生改变,而且子组件memo也会进行浅比较,为什么子组件还会更新?
函数组件、纯函数,特点就是无副作用 —— 当然 useEffect useMemo useCallback 等除外,这些就是为了增加副作用的。
所以,当你不用 useMemo 时,无副作用,数据会重新销毁重建。所以相关的组件也就重新渲染。
而用了 useMemo 就会告诉 React ,这个 state 是被缓存的,无需重建、使用缓存值即可。
非常感谢!
这里可能有问题,具体我在上一小节提问了,自己测试发现 只有引用类型 才会使 memo 失效,因为memo进行对比时候,可能是判断{name:'rym',age:20} === {name:'rym',age:20} 引用的不是同一块内存,false,所以memo认为是不相等,所以才会去更新子组件,而我试了传值类型是可以优化的,不需要使用 useMemo,这里感觉useMemo像是 memo 的补丁以及缓存数据的用途,如有误还请老师指正
登录后可查看更多问答,登录/注册
面向1-3年前端的框架及项目面试“刚需内容”
4.1k 1
2.6k 11
1.3k 11
1.2k 11