经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » JavaScript » 查看文章
react中context的优化
来源:cnblogs  作者:田想兵  时间:2021/6/7 9:11:49  对本文有异议

很多时候,为了减少render的次数,我们不得不使用shouldUpdate或memo等方法,但是当组件使用了context上下文之后,无论你的反回值是true或false,只要context里的值发生了改变,都无法阻止组件的render,这也是因为组件需要监听context值的变化,但有时,我们并不需要所有变化都被更新。所以尝试了几种方案进行优化:

  1. 更新时不使用扩展符{...},context就不会生成新的对象,但明显不合理。
  2. 把值存在顶层的state中,不存context中,这样又有点绕,得不偿失
  3. 使用EventEmitter这种发布式模式,不在本次讨论范围内,包括使用redux的方案
  4. 使用不同颗粒度的context
  5. 既然使用了useContext的组件一定会被render,只要把useContext进行上移即可,移到父组件上去调用,相当于一种折中的方式,把大量子组件的更新context的方法移交到父组件中去,这样就可以变相的优化了。

  在以上几点中,我最后选择了使用第五点,也就是把context的使用提升到了父级,这就有点类似于redux中的connect组件了,在这里可以把context转化成props传入子组件,然后在子组件中判断props的变化。

原文链接:http://www.cnblogs.com/tianxiangbing/p/react_context.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号