vue和react的区别是什么?

3 篇文章 0 订阅

vue和react的区别是什么?

1. 监听数据变化实现原理不同

因为vue的设计理念是使用可变的数据,所以Vue可以通过 getter/setter以及一些函数的劫持,能精确知道数据变化。
React不能精确的监听到数据的变化是因为React在设计理念上强调的是数据的不可变。
两者之间没有好坏之分,vue相对react来说更加的简单,更容易上手,而react在构建大型应用的时候更加鲁棒(不知道鲁棒的自己百度百科吧)

2.数据流不同

vue可以实现双向数据绑定(vue1.0版本中的时候可以实现父子组件之间props的双向绑定,但是vue2.x以后就变成了单向的绑定,也就是所谓的父子通信以及子父通信(在子父通信中vue2.x以后提供了$emit这个语法糖来协助)),而react提倡的是单向数据流称之为onChange/setState()模式

3.框架本质不同

vue使用的是MVVM框架,由MVC框架发展过来,拥有视图层、模型(业务逻辑)层以及控制层
react是前端组件化框架,是由后端组件化发展而来,而且react只是一个视图层。

4.模板 vs JSX

vue鼓励去写近似常规的HTML的模板,写起来很接近HTML元素,同时vue将html,css,js都整合在一个页面内,方便对每一个组件进行单独的样式设计以及逻辑编辑。自我感觉比较容易上手。
在这里插入图片描述

React推荐你所有的模板通用JavaScript的语法扩展——JSX书写,这也造就JSX在写法上更加侧重于js代码。

5.状态管理 vs 对象属性

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

addToOrder(key) {
        //Make a copy of this.state
        const orders = { ...this.state.orders };

        //update or add
        orders[ key ] = orders[ key ] + 1 || 1;
        this.setState( { orders } );
 }

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

export default {
  name: 'app',
  data() {
    return {
      samplePasta: samplePasta,
      orders: {}
    }
  },
...
  methods: {
    handleOrder: function (key) {

      if (!this.orders.hasOwnProperty(key)) {
        this.$set(this.orders, key, { count: 0 });
      }

      this.orders[key].count += 1;
    }
  }
}

而在Vue中,则不需要使用如setState()之类的方法去改变它的状态,在Vue对象中,data参数就是应用中数据的保存者,而且data参数内部的变量值是可以直接被修改的。

对于管理大型应用中的状态这一话题而言,Vue.js的作者尤雨溪曾说过,(Vue的)解决方案适用于小型应用,但对于对于大型应用而言不太适合。
多数情况下,框架内置的状态管理是不足以支撑大型应用的,Redux或Vuex等状态管理方案是必须使用的。

这也就引出下面的一个不同点了

5.Redux和Vuex的区别

Redux和Vuex都是项目管理工具,他俩的区别在于,react的设计理念是数据不可变,所以Redux中每次要更新state中的数据时都需要用到this.setState({ })方法来修改数据,而vuex因为vue数据可改变的原因,所以vuex可以直接对data内的数据进行修改。Redux在检测数据变化的时候使用的diff方式比较差异,Vuex确实用的getter/setter两种方法来检测数据的变化。

暂时就知道这些了,欢迎补充。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
VueReact都是目前前端开发中非常流行的框架和库。 Vue的优点: - Vue的学习曲线较为平缓,对于初学者来说比较友好。 - Vue提供了非常方便的指令(directive)、组件化开发以及虚拟DOM,使得开发起来更加高效便捷。 - Vue的性能表现优秀,对于大型的应用也可以轻松应变。 - Vue的灵活性较强,能够轻松扩展和集成到已有的项目中。 - Vue的文档十分完善,有大量的中文文档以及丰富的资料和社区支持。 Vue的缺点: - Vue生态相对于React还是比较弱的,虽然发展很迅速,但是和React比还有很大的差距。 - Vue的扩展性较差,这一点在更高级的开发需要处理较多逻辑的时候会更为明显。 React的优点: - React拥有Facebook的强大支持和社区,生态十分强大。 - React的组件化开发非常精致,可以对每个组件进行优化,使得每个组件的性能都非常出色。 - React提供了一个虚拟DOM,使得页面渲染时极大的提高效率。 - React的框架很适合复杂的大型应用。 React的缺点: - 学习曲线相对于Vue来说更陡峭,新手更难上手。 - 随着项目的发布,组件会越来越多,代码会变得越来越难以维护。 - 无论是针对性能的优化还是UI设计的优化,都需要很多的手动配置和调整,开发效率相对较低。 相比较而言,Vue更加适合中小型的项目,而React能够很好地胜任大型复杂的应用。不同的场景和需求下,选择不同的框架毕竟都是为了更好的解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值