vueX
一,什么是vuex
1,uex是vue.js的状态管理工具,通过集中式的状态存储、响应式的state、getters、mutations、actions,modules,五个属性和模块化的设计,解决了复杂应用中状态共享和管理的问题
2,适用场景:需要集中管理应用状态的场景
二,优点
1,稳定成熟
2,支持模块化
3,严格的约束,有助于保持代码的一致性和可维护性
三,缺点
1,语法复杂
2,代码冗长,或者重复
四,补充
同步操作放在mutations中,异步操作放在actions中
五,使用
在组件中
{{$store.state.msg}}
或者使用map()
pinia
一什么是pinia
1,Pinia是vue3的状态管理仓库,是vuex的现代代替方案,提供了更简洁的api和更好的Typescript支持,state ,getters,actions 三个属性
二优点
1,简洁直观
2,更好的类型支持:提供了更好的Typescript的支持
3,灵活性高
三,缺点
1,支持较少:资源和插件的生态系统没有vuex丰富
2,当将vuex中的数据转移至pinia中时会涉及到较大的代码改动
3,不支持vue2
四,补充
pinia中的actions属性中可以进行同步和异步的操作
由于没有模块管理(modules),可以伪造一个
五使用
需要引入文件库,拿到实例,最后解构出来页面就可以使用了
总结
1,API和语法特性:Pinia取消了mutations,而Vuex强制要求mutations进行状态修改。Pinia通过actions或直接修改state来改变状态。
2,模块注册:Vuex需要手动注册模块,而Pinia的store是独立的,不需要显式注册模块。
3,组合式API:Pinia完全支持Vue 3的组合式API,而Vuex 则仍然基于Vue 2的Options API,并在Vue 3中提供有限的支持