首页 > 其他分享 >为什么使用 Pinia(Vuex)

为什么使用 Pinia(Vuex)

时间:2022-09-21 01:22:46浏览次数:96  
标签:为什么 存储 state Pinia 组件 Vuex 页面

Pinia 定义

Pinia(Vuex?) 是一个独立于组件的全局状态,每一个组件都可以读取和写入。

Pinia 有三个重要的概念:state、getters、actions。state 等价于组件中的 data、getters 等价于组件中的 computed、methods 等价于组件中的 actions。

Vue3 文档中 Vuex 更名为 Pinia,但不仅仅只是更名那么简单,Pinia 可以用在 Vue2 也可以用在 Vue3 中。

实际应用

全局状态

我认为,Pinia 非常适合写一些组件公共的业务逻辑,其他组件调用 Pinia,如果某个组件对状态(Pinia 的 state)写入了新的值,其他组件也会跟着变动。

根据 Pinia 的定义,Pinia 也非常适合存储在程序运行阶段时需要的全局状态(state)。注意,是运行时阶段,只要整个页面发生了刷新或者重新打开浏览器访问页面,Pinia 中的数据全都被清空,它区别于浏览器本地存储。

临时数据

Pinia 也可以做一个临时数据的存储,我们知道组件与组件之间传递数据比较麻烦,有了 Pinia 可以跨越组件的依赖深度(组件->组件->组件)。但实际上,Vue 有一个 API 已经解决了这个场景,也就是依赖注入?

组件深度:父组件传递值给子组件,而子组件其实与父组件隔了四个甚至更深的层次关系。即组件套组件的情况。可以使用 Pinia 存储数据,子组件直接调用 Pinia 的 state 就可以拿到了。

例如,聊天消息存储,点击好友列表之后,此时的页面需要获取聊天记录展示上一次的聊天消息。若是刷新了一次,此时的 Pinia 没有数据,肯定从数据库中获取消息记录;若没有刷新页面,并且已经与好友发送了消息,就直接通过 Pinia 中临时存储的数据中获取聊天记录。这样做的目的是节约数据库的开销,节约网络资源。

标签:为什么,存储,state,Pinia,组件,Vuex,页面
From: https://www.cnblogs.com/Enziandom/p/16714244.html

相关文章