Vue3-45-Pinia-定义全局状态的两种方式

Pinia 的作用介绍

Pinia 是管理 全局状态的工具。
全局状态
我的理解,就是一个全局的变量,在项目内,所有的组件都可以使用它,对它进行读写操作。

全局状态的三个核心概念

state : 最核心的,就是变量的定义;

getters : 类似于组件的【计算属性】,是对 state 的修饰函数;

actions : 类似于组件的 【方法】,可以对 state 进行逻辑处理;

简单理解 : 
state 是定义全局状态的地方;
getters 是读取全局状态的地方;
actions 是操作全局状态的地方。

getters 和 actions 可以没有;
但是 state 必须有!!!

全局状态定义的核心API

defineStore() : 定义全局状态的api,它接收两个参数:
参数1 : 全局状态的 id,必须的,且确保是唯一的;</

### Pinia 插件对比:pinia-plugin-persist-uni vs pinia-plugin-persistedstate #### 功能特性 `pinia-plugin-persistedstate` 是一个广泛使用的插件,用于持久化 Vue 应用中的状态管理工具 Pinia 的 store 数据。该插件支持多种存储方式,如 localStorage, sessionStorage 或者自定义的 storage 实现[^1]。 ```javascript import { createPinia } from &#39;pinia&#39;; import persistState from &#39;pinia-plugin-persistedstate&#39;; const pinia = createPinia(); pinia.use(persistState); ``` 相比之下,`pinia-plugin-persist-uni` 提供了一种更加统一的方式处理不同平台上的数据持久化需求,尤其适合跨端开发场景下的应用,比如同时针对浏览器环境和移动端框架(如 UniApp)。它不仅能够兼容更多类型的本地储存机制,还优化了一些特定设备上性能表现[^2]。 #### 配置灵活性 对于 `pinia-plugin-persistedstate` 而言,在配置选项方面提供了丰富的参数来满足不同的业务逻辑要求,例如可以指定 key 名称、设置同步延迟时间以及选择是否开启调试模式等功能点[^3]。 ```javascript // 使用 pinia-plugin-persistedstate 进行更细致化的配置 useStore(pinia, { key: &#39;my-app&#39;, paths: [&#39;count&#39;], // 只保存 count 字段 }); ``` 而在 `pinia-plugin-persist-uni` 中,则强调简化配置流程的同时保持足够的扩展性,允许开发者通过简单的 API 定义全局默认行为或是覆盖单个 Store 的持久化策略[^4]。 #### 性能考量 考虑到实际应用场景中可能存在的大量读写操作带来的性能开销问题,两个库都做了相应的优化措施。不过由于后者专注于多端适配性和效率提升,因此在某些情况下可能会表现出更好的响应速度和更低资源占用率[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值