React 与 vue 的异同

48 阅读2分钟

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,更大原生态圈,可以依赖的插件更多。