• pinia是什么,为什么我们要使用pinia?

    • pinia是vue全局状态管理工具,类似vueX,用于全局的数据状态存储、修改变更等等
    • 相较于vueX,pinia的使用较为简单,轻量级,上手容易,干掉了vueX的层层套娃
  • 快速安装配置pinia

    • 安装依赖 npm install pinia
    • 创建一个store
      // 创建一个store文件,对全局属性、方法变量进行管理
      import { defineStore } from "pinia"; //defineStore返回一个函数进行调用,参数一为命名,即存储在本地的名称,参数二是对应的配置
      //state 用于变量的存储,getters是计算属性,action是方法集合,同步异步方法均可执行
      export const useStore = defineStore('store', {
      state:()=>({
      count:0,
      }),
      getters:{ },
      actions:{
      increaseCount(){
      this.count++;
      }
      }
      })
    • 挂载pinia到vue上,vue js入口文件,main.js中操作
      import { createPinia } from 'pinia';
      app.use(createPinia());
  • 如何使用pinia  

    //在需要使用的组件中,引入刚才导出的变量 useStore,注意,该变量是defineStore返回的函数
    import { useStore } from './store';
    const authStore = useStore();
    // 使用变量
    console.log(authStore.count);
    // 调用方法
    authStore.increaseCount();
  • 数据持久化操作,避免页面刷新,数据就没了

    • 这里推荐插件  pinia-plugin-persistedstate
    • // 安装依赖 npm install pinia-plugin-persistedstate
      
      // 在挂载pinia到vue前,配置持久化,main.js入口文件中操作
      import { createPinia } from 'pinia';
      // 引入持久化插件
      import { createPersistedState } from 'pinia-plugin-persistedstate';
      const pinia = createPinia();
      pinia.use(createPersistedState({
      serializer: { // 指定参数序列化器
      serialize: JSON.stringify,
      deserialize: JSON.parse,
      }
      }));
      app.use(pinia);// 挂载pinia
    • // 创建一个store文件,对全局属性、方法变量进行管理
      import { defineStore } from "pinia"; //defineStore返回一个函数进行调用,参数一为命名,参数二是对应的配置
      //state 用于变量的存储,getters是计算属性,action是方法集合,同步异步方法均可执行
      export const useStore = defineStore('store', {
      state:()=>({
      count:0,
      }),
      getters:{ },
      actions:{
      increaseCount(){
      this.count++;
      }
      },
      // 持久化配置
      persist: {
      key: 'store',//存储本地的名字
      storage:window.localStorage,//存储地址,可选sessionStorage
      paths:['count'],//需要持久化的变量
      },
      })

最新文章

  1. 创建SSH Key连接github或gitlab
  2. thinkphp怎么修改配置进入默认首页
  3. iOS开发小技巧 -- tableView-section圆角边框解决方案
  4. 【Java EE 学习 80 下】【调用WebService服务的四种方式】【WebService中的注解】
  5. switch..case使用
  6. 关于kali2.0 rolling无法连接数据的解决办法
  7. SSRS报表参数设置
  8. mongodb的安装及注意事项
  9. Notes of Linked Data concept and application - TODO
  10. C# 公关类(全)
  11. Mac安装Mysql无法登录
  12. js 哈希路由原理实现
  13. LOOKUP函数入门
  14. logback配置信息
  15. Python字符串常用方法(二)
  16. JVM之虚拟机类加载机制
  17. C++ 使用openssl库实现 DES 加密——CBC模式 && RSA加密——公加私解——私加公解
  18. idea插件JRebel 解决热编译,开启高级debug之路
  19. Coursera台大机器学习技法课程笔记09-Decision Tree
  20. 【转载并整理】mysql分页方法

热门文章

  1. winform datagridview行头添加序号
  2. SSH SCP 使用秘钥验证 登录
  3. 第1章-Spring的模块与应用场景
  4. Windows server 2008 tomcat间歇性掉线关闭
  5. oracle 内置函数(三)日期函数
  6. ArcGIS 添加Excel数据 报错 ArcGIS Failed to connect to database 外部数据库驱动程序(1)中的意外错误
  7. 深入浅出学习透析 Nginx 服务器的基本原理和配置指南「运维操作实战篇」
  8. 【Oracle】Oracle读取RAW二进制类型并实现与十六进制的相互转换
  9. dubbo2升级到dubbo3实践
  10. @ApiImplicitParams注解的详细使用