一.
Vue新一代状态管理工具,Pinia.js
Pinia.js 是新一代的状态管理器,由 Vue.js团队中成员所开发的,因此也被认为是下一代的 Vuex,即 Vuex5.x,在 Vue3.0 的项目中使用也是备受推崇。
Pinia.js 有如下特点:
- 完整的 typescript 的支持;
- 足够轻量,压缩后的体积只有1.6kb;
- 去除 mutations,只有 state,getters,actions
- actions 支持同步和异步;
- 没有模块嵌套,只有 store 的概念,store 之间可以自由使用,更
- 好的代码分割;
- 无需手动添加 store,store 一旦创建便会自动添加;
它的定位和特点也很明确:
直观,像定义组件一样地定义 store,并且能够更好地组合它们;
完整的 Typescript 支持;
关联 Vue Devtools 钩子,提供更好地开发体验;
模块化设计,能够构建多个 stores 并实现自动地代码拆分;
极其轻量(1kb),甚至感觉不到它的存在 ;
同时支持同步和异步 actions;
yarn add pinia
扫描二维码关注公众号,回复:
14844553 查看本文章
通过 mapState 或者 mapWritableState 辅助函数来读写 state
保持其响应式的同时从 store 中提取属性要使用 storeToRefs
通过 $patch 修改多个字段信息
$subscribe方法跟 vuex 的 subscribe 类似,用于监听 state 及其 mutation 动作。
Getters 就是 store 的计算属性(computed)。大部分时候,Getter 通过 state 值去做计算
Actions 相当于组件里的 methods