React 与 vue 的比较:
1. 相同点:
1) 都有组件化开发和虚拟dom(渲染速度快)
2) 都支持props 进行父子组件间数据通信
3) 都支持数据驱动视图,不直接操作真实dom,更新状态数据界面就自动更新
4) 都支持服务器端渲染,都有独立的路由系统,以及独立的状态管理。
5) 都有支持native的方案,react 的 fact native, vue 的 week
2. 不同点:
1)数据绑定:vue实现了数据的双向绑定, react 数据流动是单向的。
2)组件写法不一样,react 采用的是jsx, 也就是把html 和 css 都写进js中,即 ‘all in js ‘ ;
Vue 采用的是模板语法的方式编写单文件组件,即在文件里使用template这个指令的。
Html,css,js 可以写在同一个文件中。使用webpack 和vue 对应的vue-loader 进行打包。
3) state 对象在react 应用中不可变的,需要使用setState 方法更新状态; 在 vue 中, state 对象不是必须的,数据由 data 属性 在vue 对象中管理
4)virtual DOM 不一样,vue 会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树。
而对于react 而言,每当应用的状态被改变时,全部组件都会重新渲染,所以react中会需要shouldComponentUpdate 这个生命周期函数方法来进行控制
5)React 严格上只针对MVC 的view 层,vue 则是MVVM模式。
各自的优势:
Vue —
a,在模板和渲染函数之间灵活选择;
b,语法简洁,项目创建的体积更小;
c, 渲染速度更快。
React —
a,更适合大型项目的开发,有更好的可测试性;
b,同时适用于web端和原生APP端(混合式);
c,更大原生态圈,可以依赖的插件更多。