Vue和React区别

18 篇文章 23 订阅
16 篇文章 1 订阅


官方文档

一. Vue和React相同点

  1. 使用 Virtual DOM
  2. 提供了响应式 (修改Model会重新渲染View) 和组件化 (页面由多个组件构成) 的视图组件。
  3. 将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库。
  4. 都支持服务端渲染

二. react 与 vue 的区别

2.1 更新粒度不同

ReactVue在更新粒度上存在显著差异。

React采用的是自顶向下递归更新方式。当一个组件的依赖数据发生变化时,React 会递归地重新渲染这个组件及其所有子组件。React 引入了 Fiber 架构,通过将渲染工作拆分成多个任务,优化了更新渲染的流程。

Vue采用的是组件级的更新方式。当一个组件的依赖数据发生变化时,Vue只会更新涉及到的组件,而不是整个应用。Vue 的响应式系统通过“依赖收集”机制,能够精确地知道哪些组件的视图依赖于发生变化的属性,每个组件都有自己的渲染 watcher ,掌管当前组件的视图更新,从而只更新这些组件。

总的来说,React 的更新粒度较大,可能会递归地更新整个组件树;而Vue的更新粒度较小,只会更新涉及到的组件。这种差异反映了两者在性能优化和实现方式上的不同。

2.2 渲染处理不同

React 只要数据有更新(setStateuseState 等手段触发更新),都会去重新渲染页面(可以使用shouldComponentUpdate/ PureComponent 改善)。

Vue 只有依赖收集的数据发生更新,Vue 才会去重新渲染页面。

2.3 更新流程不同

ReactVue在更新流程上存在显著差异。

React的更新流程主要是通过重新渲染组件来实现的。当组件的状态(state)发生变化时,React重新渲染该组件以及所有子组件React通过比较新旧虚拟DOM树,使用diff算法来确定最小节点集合,然后只更新这些节点,以最小化DOM操作

Vue的更新流程则基于数据依赖关系。当数据发生变化时,Vue标记相关组件为脏数据,并在下一个事件循环中调用patch函数来更新视图。Vue通过比较新旧虚拟DOM树,使用diff算法来确定最小节点集合,然后只更新这些节点。

总的来说,ReactVue都采用了虚拟DOMdiff算法来优化DOM操作,但Vue更强调数据驱动视图,通过收集数据依赖来触发更新,而React则是通过重新渲染组件来发现和更新自身。这种差异反映了两者在处理更新流程时的不同理念和实现方式。

2.4 核心思想不同

ReactVue的核心思想有较大差异。

React推崇JSXReact推崇函数式编程,注重不可变性单向数据流的组合,以提高代码的可预测性和可维护性。

Vue定位简单易上手,基于template模板 + options APIVue的核心思想是数据驱动组件化开发Vue将数据作为核心,通过双向数据绑定视图数据关联起来。当数据发生变化时,Vue会自动更新视图。Vue还引入了指令、过滤器、混入、插槽等特性,使得组件的开发更加灵活和强大。

总的来说,ReactVue都强调组件化开发,但Vue更侧重于数据驱动灵活性,而React则更注重函数式编程组件的独立性

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值