目前国内前端应用的两个主流框架分别是 VueReact,那么在技术选型时该选哪一个呢?它们之间的区别又是什么?

React和Vue的区别

监听数据变化的实现原理:可变和不可变

Vue通过(getter/setter)的方式进行数据劫持,然后对数据进行比对。而React在不做优化的情况下,直接通过比较引用来判断数据是否发生了变化。

两种数据监听原理的不同于它们本身的设计原理有关:Vue更强调数据的可变性,即它会修改原来的数据;而React更强调数据的不可变性,即它会生成一份新的数据返回,不对原来的数据进行修改。

React的比较方法在进行数据比对时会更加简便,但同时也会增大内存的开销。

数据流:单向和双向

虽然在Vue2.0中取消了父子组件之间的数据双向绑定,但是仍然保留了组件和dom之间的双向绑定(即v-model);但是React从始至终都提倡单项数据流。

组合功能模块:高阶组件(HOC)和混入(mixin)

在组合功能模块时,Vue通常使用混入的方式,在React中通常是使用高阶组件的方式。虽然React也可以使用混入,但是在它的文档里是并不推荐这种写法的,它认为混入会让页面的逻辑变得难以摸索。

组件的嵌套:嵌套和插槽

Vue通过插槽的方式完成组件的嵌套,并且Vue还支持多插槽;而React使用props.children拿到子组件进行渲染。

编写语法

Vue更加提倡单文件组件,而React更推荐JSX语法。

参考

  1. 个人理解Vue和React区别.