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