react 现在的工作方式是这样的:
父元素的 state 改变 -> 所有子元素的 render 函数都会执行 -> virtual dom 检查所有的子元素,找到真正变化的子元素, render 它们
这样的机制下,“所有子元素的 render 函数都会执行”这一步无疑是影响性能的。所以 react 又提供了 shouldComponentUpdate 方法。如果我们用 immutable data ,配合 shouldComponentUpdate,我们开发者自己就能容易的找到真正变化的元素。这时候 virtual dom 就没有存在的必要了。
不需要 virtual dom ,那 jsx 也就不是必须的。事实上,如果我们尽量遵循最佳实践,写 stateless 的 component 。那大部分的 component 就只是没有什么逻辑的模板而已,跟其他以字符串为基础的模板库没什么不一样。
我们是否可以期待一个利用 immutable data 的新的前端框架?