美文网首页
简单谈谈vue和react的不同

简单谈谈vue和react的不同

作者: sdcV | 来源:发表于2017-07-26 20:36 被阅读80次

本人一直使用react,对于vue只是简单学习过,对其了解不是很深。它们的区别也大多是来自网上各位牛人的见解。

1 如果你喜欢用模板搭建应用(或者有这个想法),请选择Vue

Vue应用的默认选项是把markup放在HTML文件中。数据绑定表达式采用的是和Angular相似的mustache语法,而指令(特殊的HTML属性)用来向模板添加功能。举例:

// HTML
<div id="app">
    <p>{{ message }}</p>
    <button v-on:click="reverseMessage">Reverse Message</button>
</div>
 // JS
new Vue({
    el: '#app',
    data: {
        message: 'Hello Vue.js!'
    },
    methods: {
        reverseMessage: function () {
            this.message = this.message.split('').reverse().join('');
        }
    }
});
2 相比之下,React应用不使用模板,它要求开发者借助JSX在JavaScript中创建DOM。下面是用React实现的同样的应用:
// HTML
<div id="app"></div>
// JS (pre-transpilation)
class App extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            message: 'Hello React.js!'
        };
    }
   reverseMessage() {
       this.setState({ 
           message: this.state.message.split('').reverse().join('') 
       });
    }
   render() {
       return (
           <div>
               <p>{this.state.message}</p>
               <button onClick={() => this.reverseMessage()}>
                   Reverse Message
               </button>
           </div>
       )
    }
}
ReactDOM.render(App, document.getElementById('app'));
  • 对于来自标准Web开发方式的新开发者,模板更容易理解。但是一些资深开发者也喜欢模板,因为模板可以更好的把布局和功能分割开来,还可以使用Pug之类的模板引擎。
  • 但是使用模板的代价是不得不学习所有的HTML扩展语法,而渲染函数只需要会标准的HTML和JavaScript。而且比起模板,渲染函数更加容易调试和测试。当然你不应该因为这方面的原因错过Vue,因为在Vue2.0中提供了使用模板或者渲染函数的选项。
3 如果你喜欢简单和“能用就行”的东西,请选择Vue

一个简单的Vue项目可以不需要转译直接运行在浏览器中,所以使用Vue可以像使用jQuery一样简单。当然这对于React来说在技术上也是可行的,但是典型的React代码是重度依赖于JSX和诸如class之类的ES6特性的。
<b>Vue的简单在程序设计的时候体现更深,让我们来比较一下两个框架是怎样处理应用数据的(也就是state)。</b>

  • React中的state是不可变(immutable)的,所以不能直接改变,需要使用API中的setState方法:
    this.setState({
    message: this.state.message.split('').reverse().join('')
    });
  • Vue中的数据是可变(mutated)的,所以同样的操作看起来更加简洁。
    this.message = this.message.split('').reverse().join('');
    让我们来看看Vue中是如何进行状态管理的。当向state添加一个新对象的时候,Vue将遍历其中的所有属性并且转换为getter,setter方法,现在Vue的响应系统开始保持对state的跟踪了,当state中的内容发生变化的时候就会自动重新渲染DOM。令人称道的是,Vue中改变state的状态的操作不仅更加简洁,而且它的重新渲染系统也比React 的更快更有效率。
4. 如果你想要你的应用尽可能的小和快,请选择Vue
  • 当应用程序的状态改变时,React和Vue都将构建一个虚拟DOM并同步到真实DOM中,Vue的渲染系统比React的更快。
  • 但是,页面大小是与所有项目有关的,这方面Vue再次领先,它目前的版本压缩后只有25.6KB。React要实现同样的功能,你需要React DOM(37.4KB)和React with Addon库(11.4KB),共计44.8KB,几乎是Vue的两倍大。双倍的体积并不能带来双倍的功能。
5 如果你打算构建一个大型应用程序,请选择React。
  • 像文章开头那种同时用Vue和React实现的简单应用程序,可能会让一个开发者潜意识中更加倾向于Vue。这是因为基于模板的应用程序第一眼看上去更加好理解,而且能很快跑起来。但是这些好处引入的技术债会阻碍应用扩展到更大的规模。模板容易出现很难注意到的运行时错误,同时也很难去测试,重构和分解。
  • 相比之下,Javascript模板可以组织成具有很好的分解性和干(DRY)代码的组件,干代码的可重用性和可测试性更好。Vue也有组件系统和渲染函数,但是React的渲染系统可配置性更强,还有诸如浅(shallow)渲染的特性,和React的测试工具结合起来使用,使代码的可测试性和可维护性更好。
6 如果你想要一个同时适用于Web端和原生APP的框架,请选择React

React Native是一个使用Javascript构建移动端原生应用程序iOS,Android的库。 它与React相同,只是不使用Web组件,而是使用原生组件。 如果你学过React.js,很快就能上手react native,反之亦然。

7 如果你想要最大的生态系统,请选择React

总结:

<b>Vue的优势是:</b>

  • 模板和渲染函数的弹性选择
  • 简单的语法和项目配置
  • 更快的渲染速度和更小的体积

<b>React的优势是:</b>

  • 更适合大型应用和更好的可测试性
  • Web端和移动端原生APP通吃
  • 更大的生态系统,更多的支持和好用的工具

<b>React和Vue相似处:</b>

  • 用虚拟DOM实现快速渲染
  • 轻量级
  • 响应式组件
  • 服务端渲染
  • 集成路由工具,打包工具,状态管理工具的难度低
  • 优秀的支持和社区

相关文章

  • 简单谈谈vue和react的不同

    本人一直使用react,对于vue只是简单学习过,对其了解不是很深。它们的区别也大多是来自网上各位牛人的见解。 1...

  • vue & react的区别

    vue & react 参考: 个人理解Vue和React区别Vue和React的使用场景和深度有何不同? vue...

  • Vue 和 React

    Vue 和 React 的认识,做一个简单的对比 1.监听数据变化的实现原理不同 Vue 通过 getter/se...

  • vue

    vue组件与实例的关系 0. 谈谈 vue 和 react ? 1.mvvm 框架是什么答:vue是实现了双向数据...

  • vue和react的区别之我见

    react和vue都是做组件化的,整体的功能都类似,但是他们的设计思路是有很多不同的。使用react和vue,主要...

  • React、Vue、小程序更新数据并渲染大比较

    今天我们来谈谈在react、vue、小程序中是如何更新数据并渲染组件的 React React中,直接赋值不会重新...

  • vue和react的区别

    vue和react的区别: 1、模板渲染方式的不同在表层上,模板的语法不同,React是通过JSX渲染模板。而Vu...

  • React 与 Vue 比较

    日期:2019 年 11 月 28 日 React 与 Vue 比较 简单介绍 React 与 Vue 都是当前主...

  • Vue和React

    我们来对比一下Vue,React,Angular Vue和React对比 Vue和React相同点 基于MVC模式...

  • 前端面试-vue

    1.了解vue和react吗?介绍一下。 vue和react都是主流的框架。vue : 脚手架vue-cli、路由...

网友评论

      本文标题:简单谈谈vue和react的不同

      本文链接:https://www.haomeiwen.com/subject/tmwokxtx.html