1、数据改变的方式
react是通过setState来改变数据,然后重走组件的渲染过程。而vue是通过Object.defineProperty和watcher来显示响应式的数据,所以数据的改变是直接修改的。
2、双向绑定
react没有双向绑定,vue有双向绑定。
3、组件的渲染
当状态修改的时候,react会以该组件为根,重新渲染整个组件子树。如要避免不必要的子组件的重渲染,你需要在所有可能的地方使用 PureComponent
,或是手动实现 shouldComponentUpdate
方法。同时你可能会需要使用不可变的数据结构来使得你的组件更容易被优化。而vue能精确知晓哪个组件确实需要被重渲染。
4、模版
react是all in js,它的模版是用jsx来写的,jsx是使用 XML语法编写 JavaScript 的一种语法糖,所以你需要学习除js外的一些语法。而vue则是使用vue模版+vue指令来写的,需要额外学习一些指令和模版语法。
5、扩展
向上的扩展:都有一条rooter和flux的技术栈。向下扩展:vue可以像其它库那样直接引入就可以了。
6、跨平台
react有RN,vue有weex,RN相对来说存在的时间更长。