大菠萝?Pinia的简单上手

215 阅读2分钟

Pinia是一个全新的Vue状态管理库,可以说是Vuex的代替者,Vue3官方推荐使用

  • Vue2 和 Vue3 都能支持

  • 抛弃传统的 Mutation ,只有 state, getteraction ,简化状态管理

  • 不需要嵌套模块,符合 Vue3 的 Composition api,让代码扁平化

  • 支持TypeScript

  • 代码简洁,自动分割

这里是使用Vue3+Pinia

使用vite创建项目:npm init vite@latest

安装插件:npm install pinia -S

Pinia的基础使用

main.js中使用createPinia创建Pinia实例

pinia.jpg

新建store文件夹并创建js文件

store.jpg

然后在你要使用store的页面进行引入即可

use.jpg

改变状态的几种方式

one.jpg

two.jpg

three.jpg

four.jpg

Pinia中使用解构方式存在的问题

jie.jpg

jieNum.jpg

此时对定义的数据进行修改操作,数据是不会变化的,这是因为解构后的数据不再是响应式的了。

要解决这个问题也很简单,官方提供了一个storeToRefs方法,具体使用如下

storeToRefs.jpg

这样数据就变回响应式,重新对数据进行修改操作,页面上就可以看到变化了。

Pinia中Gettets属性

Gettets就相当于计算属性,在store中定义

getter.jpg

不需要其他的操作,可以直接在store实例上访问getter

get.jpg

Getters我们进入深一点,在其中加console.log,在控制台查看打印状态,只要值没有改变,多次使用也只会调用一次,故getter中的值有是具有缓存特性的。

Pinia中store之间的互相调用

重新创建一个store,在之前store中间调用新创建的store

new.jpg

getList.jpg

给按钮绑定事件,在控制台查看,成功打印数据。

show.jpg

总结

Pinia算是Vuex的替代品,Pinia更好地兼容了Vue本身,代码更加简洁,开发起来也更加便捷。以上就是Pinia的基本使用,希望看了此文章对你有所帮助,能快速上手。有什么帮助的话,别忘了动动手指点个赞❤️