- 设计思想不同
react 的设计思想是:函数式的思想,把组件设计成纯函数,状态和逻辑通过参数传入,通过单向数据流保证状态的统一化。 react 希望数据是不可变的。所以,结合 immutable 来实现数据不可变。 immutable 是一种持久化的数据,一旦被创建就不会被修改。如果修改了 immutable 对象,也是返回了一个新的 immutable, 但是原数据不变。
vue 的设计思想是:响应式的思想,也是基于数据是可变的,通过监听器 watcher 监听每一个属性的变化,实现虚拟 dom 的更新。 react的性能优化需要手动去做,而vue的性能优化是自动的。
当 state 特别多的时候,vue 的 watcher 响应也会使应用卡顿。而 react 不会有这个问题,这就是为什么 react 更适合大型的应用服务
- 模板处理方式不同
react 是 all - in -js, html css js 都统一到一个 js 文件中,所以,react 实现一个jsx模板引擎来处理文件
vue 是 html css js 分开的通过 template style script 来统一到一个 .vue 文件中
- 组件封装
react的高阶组件hoc进行封装,react提倡精度更细,纯渲染的的组件封装,也就是什么都交给js去做
vue使用mixins进行扩展