Vue为什么没有类似于React中shouldComponentUpdate的生命周期?

根本原因是Vue与React的变化侦测方式有所不同:

React是pull的方式侦测变化,当React知道发生变化后,会使用Virtual Dom Diff进行差异检测,但是很多组件实际上是肯定不会发生变化的,这个时候需要用shouldComponentUpdate进行手动操作来减少diff,从而提高程序整体的性能。

Vue是pull+push的方式侦测变化的,在一开始就知道那个组件发生了变化,因此在push的阶段并不需要手动控制diff,而组件内部采用的diff方式实际上是可以引入类似于shouldComponentUpdate相关生命周期的,但是通常合理大小的组件不会有过量的diff,手动优化的价值有限,因此目前Vue并没有考虑引入shouldComponentUpdate这种手动优化的生命周期。

vuejs
76 views
Comments
登录后评论
Sign In
·

shouldComponentUpdate 在 react 中也很少用了,函数组件有更加优雅的方法优化,pure 组件之类的