• 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'],//需要持久化的变量
      },
      })

快速上手vue前端存储库、全局状态管理工具pinia的更多相关文章

  1. 小程序全局状态管理,在页面中获取globalData和使用globalSetData

    GitHub: https://github.com/WozHuang/mp-extend 主要目标 微信小程序官方没有提供类似vuex.redux全局状态管理的解决方案,但是在一个完整的项目中各组件 ...

  2. Mobx | 强大的状态管理工具 | 可以用Mobx来替代掉redux

    来源简书 电梯直达 https://www.jianshu.com/p/505d9d9fe36a Mobx是一个功能强大,上手非常容易的状态管理工具.就连redux的作者也曾经向大家推荐过它,在不少情 ...

  3. 状态管理工具对比vuex、redux、flux

    1.为什么要使用状态管路工具  在跨层级的组件之间传递信息,尤其是复杂的组件会非常困难.也不利于开发和维护,这时我们就a需要用到状态管理工具.     2.Flux

  4. React的状态管理工具

    Mobx-React : 当前最适合React的状态管理工具   MobX 简单.可扩展的状态管理        MobX 是由 Mendix.Coinbase.Facebook 开源和众多个人赞助商 ...

  5. 前端MVC Vue2学习总结(八)——Vue Router路由、Vuex状态管理、Element-UI

    一.Vue Router路由 二.Vuex状态管理 三.Element-UI Element-UI是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架,手机端有对应框架是 Mint U ...

  6. vue组件化开发-vuex状态管理库

    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vue 的官方调试工具 ...

  7. 微信小程序全局状态管理 wxscv

    微信小程序中,数据状态不同页面中不能跨页面同步更新,也就是缺失类似vuex,mobx,redux全局的数据状态管理功能. 有些人移植了这些库,但是毕竟不是微信小程序生态的东西. Tencent也发布了 ...

  8. 轻量级状态管理库Pinia试吃

      最近连续看了几个GitHub上的开源项目,里面都用到了 Pinia 这个状态管理库,于是研究了一下,发现确实是个好东西!那么,Pinia 的特点: 轻量化 -- Pinia 体积约1KB,十分轻巧 ...

  9. vuex状态管理工具

    父子组件之间的通信  props传递  父 向子单向传递:且每次 父组件更新时  子组件的props会跟着更新: 如果需要 子组件把数据传递给父组件,就需要在子组件上绑定自定事件 在子组件使用this ...

  10. Mobx-React : 当前适合React的状态管理工具

    MobX 简单.可扩展的状态管理        MobX 是由 Mendix.Coinbase.Facebook 开源和众多个人赞助商所赞助的.    安装 安装: npm install mobx ...

随机推荐

  1. 【RocketMQ】顺序消息实现原理

    全局有序 在RocketMQ中,如果使消息全局有序,可以为Topic设置一个消息队列,使用一个生产者单线程发送数据,消费者端也使用单线程进行消费,从而保证消息的全局有序,但是这种方式效率低,一般不使用 ...

  2. orcl substr函数与java substring 的不同

    前天事情急改一个存储过程时遇到了substr方法时,一直用好,然后用其他方法跳过去了,今天有时间回头来验证 才发现和java太不一样了! select substr('为中华之崛起而读书',2,4) ...

  3. 【大数据面试】【框架】Flume:Source的断点续传、重复数据、Channel选择

    〇.用途 流式结构 获取磁盘日志,拦截器过滤后,传递指定数据,写入HDFS或kafka 一.组成-Source.Channel.Sink 事务(put/take) 1.Source---taildir ...

  4. day34-JSON&Ajax02

    JSON&Ajax02 1.Ajax基本介绍 1.1Ajax是什么 AJAX 即"Asynchronous JavaScript And XML"(异步JavaScript ...

  5. easygui 之integerbox()、enterbox()、multenterbox() 三种输入函数的使用

    1.integerbox()函数:只可输入整数的输入框,默认输入范围为0-99 integerbox(msg="", title=" ", default=No ...

  6. vue elementui弹框内 富文本编辑器的使用,及踩坑

    最近vue项目中遇到弹框内使用富文本编辑器,遇到最大的问题是,在打开弹框后才能创建富文本编辑器,并且只能创建一次,多次点击弹框,报错: Error in v-on handler: "Err ...

  7. [0x12] 132.小组队列

    题意 link(more:UVA540) 简化题意:对 \(n\) 个小组排队,每个小组有至多 \(m\) 个成员(每个成员有唯一编号 \(x\)),当一个人来到队伍时,如果队中有同组成员,直接插入其 ...

  8. java反射基础知识整理

    目录 1.反射机制的作用 2.获取一个类的实例 3.使用Class.forName()方法加载类的静态代码块 4.获取配置文件的路径 5.java反编译 5.1.获取类中的成员变量 5.2.通过类名反 ...

  9. [python] Python map函数总结

    Python map函数总结 本文主要介绍如何使用Python(Python3版本)的内置map()函数.简单来说map()函数会将指定的函数依次作用于某个序列的每个元素,并返回一个迭代器对象.map ...

  10. [深度学习] tf.keras入门2-分类

    目录 Fashion MNIST数据库 分类模型的建立 模型预测 总体代码 主要介绍基于tf.keras的Fashion MNIST数据库分类, 官方文档地址为:https://tensorflow. ...