为什么会有这篇文章?
在前段时间写了一篇博客介绍了Vuex4,可以发现其中有一部分问题是需要解决却未解决的,而新的状态管理工具Pinia对其缺陷已经有了解决方案,并且更好用,更强大
抛弃Vuex:
- vuex4内部有一些小“毛病”,如:从vue3开始,getter不再像计算属性那样缓存
- vuex中同步需要用到mutation,异步需要用到Action。这对刚入行的人来说比较繁琐。而Pinia只有一个Action,既可以在其中使用同步,也可以使用异步。
- Vuex4有一些类型安全相关的问题,它不能完整的支持TypeScript。Pinia已经有了完整的TypeScript支持
- vuex的官网已经声明了Pinia已经成为了默认版本,可以把它称为vuex5
使用Pinia:
- 支持Vue Devtools(Vue调试工具)
- 跟踪动作,时间栈
- 在使用容器的组件中就可以观察刀容器本身
- 支持time travel 更容易的调试功能
PS:
- 在vue2中Pinia使用Vuex的现有接口,所以不能和vuex一起使用
- 针对Vue3中的调试工具支持还不够完美,比如还没有Time-travel
- Vue2和Vue3都支持
- 除了初始化安装和SSR配置之外,两者都是相同的
- 官方文档中主要争对Vue3进行说明,必要的时候会提供Vue2注释88
- 模块热更新
- 无需重新加载页面即可修改您的容器
- 热更新的时候保持任何现有状态
- 支持插件拓展
- 支持服务端渲染
Pinia在使用的角度上来看的话和Vuex几乎是一样的,但这里建议还是先去大概的了解一下Vuex,这边推荐可以看一下这篇文章:Vue拓展_深入浅出Vuex
|