Pinia是一个全新的Vue状态管理库,可以说是Vuex的代替者,Vue3官方推荐使用
-
Vue2 和 Vue3 都能支持
-
抛弃传统的
Mutation,只有state, getter和action,简化状态管理 -
不需要嵌套模块,符合 Vue3 的 Composition api,让代码扁平化
-
支持TypeScript
-
代码简洁,自动分割
这里是使用Vue3+Pinia
使用vite创建项目:npm init vite@latest
安装插件:npm install pinia -S
Pinia的基础使用
在main.js中使用createPinia创建Pinia实例
新建store文件夹并创建js文件
然后在你要使用store的页面进行引入即可
改变状态的几种方式
Pinia中使用解构方式存在的问题
此时对定义的数据进行修改操作,数据是不会变化的,这是因为解构后的数据不再是响应式的了。
要解决这个问题也很简单,官方提供了一个storeToRefs方法,具体使用如下
这样数据就变回响应式,重新对数据进行修改操作,页面上就可以看到变化了。
Pinia中Gettets属性
Gettets就相当于计算属性,在store中定义
不需要其他的操作,可以直接在store实例上访问getter
对Getters我们进入深一点,在其中加console.log,在控制台查看打印状态,只要值没有改变,多次使用也只会调用一次,故getter中的值有是具有缓存特性的。
Pinia中store之间的互相调用
重新创建一个store,在之前store中间调用新创建的store
给按钮绑定事件,在控制台查看,成功打印数据。
总结
Pinia算是Vuex的替代品,Pinia更好地兼容了Vue本身,代码更加简洁,开发起来也更加便捷。以上就是Pinia的基本使用,希望看了此文章对你有所帮助,能快速上手。有什么帮助的话,别忘了动动手指点个赞❤️