React和Vue的区别

React推广了Virtual DOM并创造了新的语法——JSX

Vue与React一致,但却提供了另外一套解决方案。Vue使用模板系统而不是JSX,使其对现有应用的升级更加容易。这是因为模板用的就是普通的HTML,通过Vue来整合现有的系统是比较容易的,不需要整体重构。

Vue.js与React的其中最大一个相似之处,就是他们都使用了'Virtual DOM'。

当新一项被加进去这个JavaScript对象时,一个函数会计算新旧Virtual DOM之间的差异并反应在真实的DOM上。计算差异的算法是高性能框架的秘密所在,React和Vue在实现上有点不同。

Vue宣称可以更快地计算出Virtual DOM的差异,这是由于它在渲染过程中,会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树。·

而对于React而言,每当应用的状态被改变时,全部子组件都会重新渲染。当然,这可以通过shouldComponentUpdate这个生命周期方法来进行控制,但Vue将此视为默认的优化

区别

模板 vs JSX

React与Vue最大的不同是模板的编写。Vue鼓励你去写近似常规HTML的模板。写起来很接近标准HTML元素,只是多了一些属性。
另一方面,React推荐你所有的模板通用JavaScript的语法扩展——JSX书写。React/JSX乍看之下,觉得非常啰嗦,但使用JavaScript而不是模板来开发,赋予了开发者许多编程能力。
与React一样,Vue在技术上也支持render函数和JSX,但只是不是默认的而已。

状态管理 vs 对象属性

应用中的状态是React关键的概念,也有一些配套框架被设计为管理一个大的state对象,如Redux。此外,state对象在React应用中是不可变的,意味着它不能被直接改变(这也许不一定正确)。在React中你需要使用setState()方法去更新状态。·

在Vue中,state对象并不是必须的,数据由data属性在Vue对象中进行管理。

在Vue中,则不需要使用如setState()之类的方法去改变它的状态,在Vue对象中,data参数就是应用中数据的保存者。·

对于管理大型应用中的状态这一话题而言,Vue.js的作者尤雨溪曾说过,(Vue的)解决方案适用于小型应用,但对于对于大型应用而言不太适合。

多数情况下,框架内置的状态管理是不足以支撑大型应用的,Redux或Vuex等状态管理方案是必须使用的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • WordPress 的核心团队正争论着为应该将哪款(前端框架)加入现在的架构之中。目前看来,暂时脱颖而出的是Rea...
    壮哉我大前端阅读 839评论 0 5
  • 正如我们之前提到的,WordPress 的核心团队正争论着为应该将哪款(前端框架)加入现在的架构之中。目前看来,暂...
    浪漫的程序员阅读 1,149评论 0 2
  • 感恩这次灾难没有造成太大的伤亡生命太脆弱,幸好我们生活在一个越来越强大的国家 感恩我的同事和我一起看了《战狼2》这...
    王丽小同学阅读 121评论 0 1
  • 睡到清晨,浑身发热,以为自己发热了,明明记得上床前自己双脚冰冷,翻来覆去睡不着的,怎么现在会这么热?感觉在出汗,但...
    庄小叶阅读 321评论 1 3
  • http://mp.weixin.qq.com/s/Pt4g8sEIw_jaZU8ffba_6A
    会宁248南有亮阅读 96评论 -1 0