Pinia---新一代的Vuex
关于Pinia的一些问题
pinia是用来做什么的?
-
集中状态管理工具,新一代的Vuex
Pinia中还需要mutation吗?
-
不需要,action既支持同步也支持异步
Pinia如何实现getter?
-
computed
计算属性函数
Pinia产生的Store如何解构赋值数据保持响应式
-
storeToRefs
什么是Pinia?
-
Pinia是Vue的专属的最新状态管理库,是Vuex状态管理工具的替代品
Pinia相较于Vuex的区别
-
Pinia提供更加简单的API(去掉了mutation)
-
提供符合组合式风格的API(和Vue3新语法统一)
-
去掉了modules的概念,每一个store都是一个独立的模块
-
搭配Typescript一起使用提供可靠的类型推断
添加Pinia到Vue项目
-
使用
create-vue
创建空的项目:npm init vue@latest
-
按照官方文档安装pinia到项目
使用Pinia实现计数器案例
核心步骤
-
定义store(state+action)
-
组件使用store
getters实现
-
Pinda中的getters直接使用
computed函数
进行模拟
-
首先定义
getter
-
并将
getter返回
出去
3. 调用即可
4. 效果图:
action如何实现异步
-
action
中实现异步和组件中定义数据和方法的风格完全一致
storeToRefs
-
使用
storeToRefs
函数可以辅助保持数据(state+action)的响应式解构
响应式丢失
-
直接使用解构赋值的方法会出现
响应式丢失
,如下图:
解决方法:
-
使用
storeToRefs
方法包裹即可保持响应式更新,如下图:
注意:
-
方法直接从原来的
counterStore
中解构赋值