Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > vue和react状态管理有啥区别?

vue和react状态管理有啥区别?

青灯夜游
Lepaskan: 2020-12-04 17:28:22
asal
8001 orang telah melayarinya

区别:state对象在react应用中不可变的,需要使用setState方法更新状态;在vue中,state对象不是必须的,数据由data属性在vue对象中管理。

vue和react状态管理有啥区别?

相关推荐:《编程视频课程

vue和react中状态管理的区别

在React中一个比较大的内容就是函数式编程。如果你用过现在流行的Redux状态管理库,你大部分的开发时间都是在写函数式的内容。

这仅仅是一些东西但近几年却在巨大的JavaScript社区有很大的影响力。React没有发明函数式编程,它是相当老的一个概念了。但是它使自己流行于近代的编程语言中。它是一个很有用的方式帮助我写更好的代码。

另一个函数式编程的特点是不可变性。这是最近所谈论的内容“为什么不可变性是重要的参考”,但这个想法是用来控制所谓的“副作用”,并使管理应用程序状态更容易和更可预测。

现在,React在理解上本身不是一个函数式的库。Mobx是一个流行的React状态管理库,它有可变的状态。通过Vue的文档:

MobX在React社区非常流行,它实际上使用了与Vue几乎相同的反应性系统。 在一定程度上,React + MobX工作流可以被认为是一个更加详细的Vue,所以如果你使用这个组合并且很享受,那么跳进Vue可能是一个明智的选择。

Mobx加React基本上是一个增大版的Vue? — Evan You

对于Vue,另外一个流行的状态管理选择是Vuex。引用来自一篇文章比较Redux和Vuex的话,下面比较的不同可以友好的给予启发:

与Redux类似,Vuex也受到Flux的启发。 然而,与Redux不同的是,Vuex改变了状态,而不是使状态不可变,并像Redux的“reducer”函数一样完全替代它。
这允许Vue.js在状态改变时自动知道哪些指令需要重新渲染。 Vuex不用专门的reducers来分解状态逻辑,而是可以用称为模块的存储来组织它的状态逻辑。

这是一个公正的技术争论,来自于去多开发者的主要观点。如果在函数式编程开发对你很重要,React将可能对你有更多的吸引(这其中可能有例外,使用Mobx)。如果不是,Vue可能更有吸引力。

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的区别速览

1.webp.jpg

想要查阅更多相关文章,请访问PHP中文网!!

Atas ialah kandungan terperinci vue和react状态管理有啥区别?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan