考点:Vue
的变化侦测原理 前置知识:依赖收集、虚拟DOM
、响应式系统
根本原因是Vue
与React
的变化侦测方式有所不同
React
是pull
的方式侦测变化,当React
知道发生变化后,会使用Virtual Dom Diff
进行差异检测,但是很多组件实际上是肯定不会发生变化的,这个时候需要用shouldComponentUpdate
进行手动操作来减少diff
,从而提高程序整体的性能;
Vue
是pull+push
的方式侦测变化的,在⼀开始就知道那个组件发生了变化,因此在push
的阶段并不需要手动控制diff
,而组件内部采用的diff
方式实际上是可以引入类似于shouldComponentUpdate
相关生命周期的,但是通常合理大小的组件不会有过量的diff
,手动优化的价值有限,因此目前Vue
并没有考虑引入shouldComponentUpdate
这种手动优化的生命周期。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。