vue3中pinia的使用及持久化的实现
解释一下pinia:
Pinia是一个基于Vue3的状态管理库,它提供了类似Vuex的功能,但是更加轻量化和简单易用。Pinia的核心思想是将所有状态存储在单个store中,并且将store的行为和数据暴露为可响应的API,从而实现数据(或方法)在各个组件之间的共享和修改;
1、新建一个vue3项目,并导入pinia的依赖:
2、在main.ts中引入pinia:
3、在src目录下,新建一个stores文件夹。我们在这个文件夹中进行pinia的使用;
新建一个counter.ts文件,在这个文件中定义一个变量count,使这个count变量能被所有的组件共享,并修改其值;
countrt.ts的代码如下:
解释一下:
defineStore :是pinia使用中必须要引入的一个函数,它是用于定义一个新的store的函数。
在Pinia中,每个store都需要使用defineStore函数进行定义,并传入一个配置对象来描述store的行为和数据。
defineStore 一般要传递两个参数,第一个是store函数的名称,一般这个名称要做到见名知义、第二个是这个store函数的具体逻辑。
可以在这里面定义属性、方法等。但是这些定义过的属性和方法一定要通过return交出去才行
如上图,我们顶义一个count变量,并通过return返回了出去。那么现在就可以在任意组件中查看count的值,并进行修改了。
4、使用pinia:
要在组件中使用pinia定义的store函数,第一步是要先引入store:
第二步,定义一个参数来接收这个useCounterStore函数:
第三步,直接在需要的位置引入counterStore中的参数即可
(可以是属性,也可以是方法。但是有一点要注意,就是必须要是return交出去的才可以;)
从pinia中取到的数据{{ counterStore.count }}
属性或者方法都可以直接使用,只要你在return中交出去了
启动vue3项目,查看
可以看到确实能获取到pinia中定义的数据count;
如果想要修改count,可以直接在数值上修改:
定义一个按钮,并绑定事件:修改结果如图:
这个修改是全局的,你在另一个组件中也可以观察到pinia中数据的变化:
但是pinia有一个不好的地方就是它默认是内存存储,你只要一刷新浏览器就会丢失数据。
我们这时候可以借助pinia的持久化插件persist来解决;
1、下载persist持久化插件:
2、在pinia中使用persist
3、在定义状态store的时候指定持久化配置参数:{persist:true}
引入了pinia的持久化插件之后,我们再刷新页面,那么piniade的store函数中的数据也就持久的保存了。
其实这个插件底层也是使用了localstorage,将数据存储到了浏览器中。
上一篇:vue3整合SpringSecurity加JWT实现登录认证
栏 目:JavaScript
下一篇:vue3整合SpringSecurity加JWT实现权限校验
本文标题:vue3中pinia的使用及持久化的实现
本文地址:https://zz.feitang.co/wangluobiancheng/23724.html
您可能感兴趣的文章
- 07-25如何使用 Deepseek 写的uniapp油耗计算器
- 07-25JavaScript其他类型的值转换为布尔值的规则详解
- 07-25JavaScript实现给浮点数添加千分位逗号的多种方法
- 07-25ReactNative环境搭建的教程
- 07-25JavaScript获取和操作时间戳的用法详解
- 07-25通过Vue实现Excel文件的上传和预览功能
- 07-25Node使用Puppeteer监听并打印网页的接口请求
- 07-25在Node.js中设置响应的MIME类型的代码详解
- 07-25Vue3解决Mockjs引入后并访问404(Not Found) 的页面报错问题
- 07-25如何利用SpringBoot与Vue3构建前后端分离项目


阅读排行
推荐教程
- 04-23JavaScript Array实例方法flat的实现
- 04-23Vue3使用v-if指令进行条件渲染的实例代码
- 04-23THREE.JS使用TransformControls对模型拖拽的代码实例
- 07-21JavaScript判断数据类型的四种方式总结
- 07-22JavaScript随机数生成各种技巧及实例代码
- 07-21JavaScript检查变量类型的常用方法
- 07-21基于vue3与supabase系统认证机制详解
- 04-23vue3+ts项目搭建的实现示例
- 07-21JavaScript双问号操作符(??)的惊人用法总结大全
- 07-22使用Node.js实现GitHub登录功能








