usevuex
Version:
useVuex是用于提供类似mapState mapGetters mapActions mapMutations createNamespacedHelpers等vuex4.0拓展功能的辅助函数包
47 lines (28 loc) • 1.91 kB
Markdown
vuex 提供了一些类似mapState,mapMutations,createNamespacedHelpers等辅助函数给我们的开发带来了方便,但是在实际的开发过程中却发现vuex4.0对vue3得支持严重不足,特别是mapState,mapMutations,createNamespacedHelpers等辅助函数强烈依赖this所以几乎不能在setup中使用,另外vuex4.0对TypeScript的支持也十分有限,用到mutation,action等方法几乎成了AnyScript.纵观整个useStore的实现发现其十分依赖vue3的新特性Provide和Inject.这也导致目前并没有十分有效的方法解决这个问题,但是我认为使用泛型依然可以解决部分类型推断.故希望写此包尝试在vuex5.0公测前临时解决vuex4.0与vue3,TypeScript之间的矛盾.
UTC codes and abbreviations for Standard Time and Daylight Saving Time (DST) around the world.
## Feature/特性:
1. 加强vuex4.0对vue3的支持,主要是对Hook和setup方面的支持
2. 增强vuex4.0对TypeScript的支持,增强类型推导
3. 添加部分语法糖,使用法更简洁
4. 使用Hook的风格保持代码风格一致
## Usage/用法
参数说明
useStore(string|InjectionKey|undefined):Store
useNamespacedStore(string|InjectionKey|undefined):{ useActions, useGetters, useMutations, useState }
引入包
```JavaScript
//ES6 Module
import { useStore, useNamespacedStore } form "usevuex"
const { useActions, useGetters, useMutations, useState } = useNamespacedStore()
// or
const { useActions, useGetters, useMutations, useState } = useNamespacedStore(storeKey)
```
一定要在setup函数或是使用了<script setup></script> 语法糖的标签中使用.
弥补官方vuex4.0对工具函数迟迟未能支持的问题,提供类型安全的ts版本.
- ✅v0.0.1 发布useVuex包.
- 🟩v0.0.X 修复潜在BUG