快速上手vue前端存储库、全局状态管理工具pinia
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的更多相关文章
- 小程序全局状态管理,在页面中获取globalData和使用globalSetData
GitHub: https://github.com/WozHuang/mp-extend 主要目标 微信小程序官方没有提供类似vuex.redux全局状态管理的解决方案,但是在一个完整的项目中各组件 ...
- Mobx | 强大的状态管理工具 | 可以用Mobx来替代掉redux
来源简书 电梯直达 https://www.jianshu.com/p/505d9d9fe36a Mobx是一个功能强大,上手非常容易的状态管理工具.就连redux的作者也曾经向大家推荐过它,在不少情 ...
- 状态管理工具对比vuex、redux、flux
1.为什么要使用状态管路工具 在跨层级的组件之间传递信息,尤其是复杂的组件会非常困难.也不利于开发和维护,这时我们就a需要用到状态管理工具. 2.Flux
- React的状态管理工具
Mobx-React : 当前最适合React的状态管理工具 MobX 简单.可扩展的状态管理 MobX 是由 Mendix.Coinbase.Facebook 开源和众多个人赞助商 ...
- 前端MVC Vue2学习总结(八)——Vue Router路由、Vuex状态管理、Element-UI
一.Vue Router路由 二.Vuex状态管理 三.Element-UI Element-UI是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架,手机端有对应框架是 Mint U ...
- vue组件化开发-vuex状态管理库
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vue 的官方调试工具 ...
- 微信小程序全局状态管理 wxscv
微信小程序中,数据状态不同页面中不能跨页面同步更新,也就是缺失类似vuex,mobx,redux全局的数据状态管理功能. 有些人移植了这些库,但是毕竟不是微信小程序生态的东西. Tencent也发布了 ...
- 轻量级状态管理库Pinia试吃
最近连续看了几个GitHub上的开源项目,里面都用到了 Pinia 这个状态管理库,于是研究了一下,发现确实是个好东西!那么,Pinia 的特点: 轻量化 -- Pinia 体积约1KB,十分轻巧 ...
- vuex状态管理工具
父子组件之间的通信 props传递 父 向子单向传递:且每次 父组件更新时 子组件的props会跟着更新: 如果需要 子组件把数据传递给父组件,就需要在子组件上绑定自定事件 在子组件使用this ...
- Mobx-React : 当前适合React的状态管理工具
MobX 简单.可扩展的状态管理 MobX 是由 Mendix.Coinbase.Facebook 开源和众多个人赞助商所赞助的. 安装 安装: npm install mobx ...
随机推荐
- netty系列之:在netty中使用proxy protocol
目录 简介 netty对proxy protocol协议的支持 HAProxyMessage的编码解码器 netty中proxy protocol的代码示例 总结 简介 我们知道proxy proto ...
- Mysql5.6.44版本安装及基本配置
内容概要 存储数据的演变史 数据库软件应用史 MySQL简介 MySQL下载及安装 MySQL配置 存储数据的演变史 1.文本文件: 文件路径不固定,并且数据格式不统一 2.软件开发目录规范: 规定了 ...
- node学习01
1.前言 Node.js 是一个开源和跨平台的 JavaScript 运行时环境 Node.js 在浏览器之外运行 V8 JavaScript 引擎(Google Chrome 的内核). 这使得 N ...
- Idea中Git的常用操作及可能存在的问题
一.使用 1.从git上下载项目 (1)默认branch下载(pull) (2)指定branch下载 (3)克隆远程仓库到本地(git clone) git clone https://github. ...
- 【SQL基础】【关键字大写】条件查询:比较、不等于、IN、为空、BETWEEN
〇.概述 1.内容介绍 条件查询:比较.不等于.IN.为空.BETWEEN 2.建表语句 drop table if exists user_profile; CREATE TABLE `user_p ...
- Python怎么引入不同的库?
怎么引入不同的库? 在线安装库 1)pip install 模块名 2)国内源: 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirr ...
- go-micro v3 rpc服务一次改造经历
地址:https://github.com/go-micro/go-micro grpc-test-demo:https://gitee.com/jn-shao/go-gmicro-rpc-test. ...
- 【Spring专题】「开发指南」夯实实战基础功底之解读logback-spring.xml文件的详解实现
logback的maven配置 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j- ...
- csp-j 游记
### 初赛 day -7 ~ day -1 赛前集训,都很简单,什么二叉树,图论呀,轻松搞定.做了 $2008$ 至 $2015$ 年的普及组真题,都在 $50$ 分以上,感觉初赛稳了(坐标 $HN ...
- Codeforces Round #842 (Div. 2) A-D
比赛链接 A 题意 给一个数 \(k\) 找到最大的 \(x\) ,满足 \(1 \leq x < k\) 且 \(x!+(x-1)!\) 是 \(k\) 的倍数. 题解 知识点:数学. 猜测 ...