美文网首页
React和Vue

React和Vue

作者: 遇一顽石 | 来源:发表于2020-11-05 15:10 被阅读0次

1.数据监听不同
React:默认是通过比较引用的方式(diff)进行的,提倡的是单向数据流,更强调数据的不可变。
Vue:通过 getter/setter以及一些函数的劫持,能精确知道数据变化。
vue的思想是响应式的,也就是基于是数据可变的,通过对每一个属性建立Watcher来监听,当属性变化的时候,响应式的更新对应的虚拟dom。
总之,react的性能优化需要手动去做,而vue的性能优化是自动的,但是vue的响应式机制也有问题,就是当state特别多的时候,Watcher也会很多,会导致卡顿,所以大型应用(状态特别多的)一般用react,更加可控。


image.png

2.模板渲染方式的不同
在表层上,模板的语法不同,React是通过JSX渲染模板。而Vue是通过一种拓展的HTML语法进行渲染,但其实这只是表面现象,毕竟React并不必须依赖JSX。(all in js)
在深层上,模板的原理不同,这才是他们的本质区别:React是在组件JS代码中,通过原生JS实现模板中的常见语法,比如插值,条件,循环等,都是通过JS语法实现的,更加纯粹更加原生。而Vue是在和组件JS代码分离的单独的模板中,通过指令来实现的,比如条件语句就需要 v-if 来实现对这一点,这样的做法显得有些独特,会把HTML弄得很乱。
举个例子,说明React的好处:react中render函数是支持闭包特性的,所以我们import的组件在render中可以直接调用。但是在Vue中,由于模板中使用的数据都必须挂在 this 上进行一次中转,所以我们import 一个组件完了之后,还需要在 components 中再声明下,这样显然是很奇怪但又不得不这样的做法。

3.渲染过程不同
Vue可以更快地计算出Virtual DOM的差异,这是由于它在渲染过程中,会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树。
React在应用的状态被改变时,全部子组件都会重新渲染。通过shouldComponentUpdate这个生命周期方法可以进行控制,但Vue将此视为默认的优化。
如果应用中交互复杂,需要处理大量的UI变化,那么使用Virtual DOM是一个好主意。如果更新元素并不频繁,那么Virtual DOM并不一定适用,性能很可能还不如直接操控DOM。

4.Vuex和Redux的区别
从表面上来说,store注入和使用方式有一些区别。在Vuex中,store被直接注入到了组件实例中,因此可以比较灵活的使用:使用dispatch、commit提交更新,通过mapState或者直接通过this.store来读取数据。在Redux中,我们每一个组件都需要显示的用connect把需要的props和dispatch连接起来。另外,Vuex更加灵活一些,组件中既可以dispatch action,也可以commit updates,而Redux中只能进行dispatch,不能直接调用reducer进行修改。
从实现原理上来说,最大的区别是两点:Redux使用的是不可变数据,而Vuex的数据是可变的,因此,Redux每次都是用新state替换旧state,而Vuex是直接修改。Redux在检测数据变化的时候,是通过diff的方式比较差异的,而Vuex其实和Vue的原理一样,是通过getter/setter来比较的,这两点的区别,也是因为React和Vue的设计理念不同。React更偏向于构建稳定大型的应用,非常的科班化。相比之下,Vue更偏向于简单迅速的解决问题,更灵活,不那么严格遵循条条框框。因此也会给人一种大型项目用React,小型项目用Vue的感觉。

相关文章

  • vue & react的区别

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

  • Vue和React

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

  • vue和其它框架的对比

    React、Vue、Angular比较 相同之处: React和vue: 使用Virtual Dom 提供响应式和...

  • vue对比react、Angular(转官方文档)

    vue对比react、Angular(转官方文档) React React 和 Vue 有许多相似之处,它们都有:...

  • 前端面试-vue

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

  • 前端面试题

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

  • react和vue初始化数组的通用写法

    以下的写法react和vue是一样的。 React的写法 vue写法

  • webpack5 高级配置

    虽然在日常开发中,我们使用vue和react框架,它们的脚本架vue-cli和react-react-app会帮我...

  • 2020前端面试题二之vue

    1、vue与react的区别 vue和react的区别 两者本质的区别:模板和组件化的区别 Vue本质是MVVM框...

  • React面试题总结

    1.vue-router 和 react-router的区别 首先,我们先看一下在vue-router和react...

网友评论

      本文标题:React和Vue

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