推荐一个很好用的vscode插件:一个能够给出vuex中store定义信息的vscode插件

VueThis$Store

想要解决的问题

在使用Vuex管理本身应用的状态时,由于状态过多,为了正确性每次都要打开vuex定义文件,去复制定义时的函数名或者状态名,无形中就浪费了许多时间,为了解决这个痛点,开发了这个vscode插件。vue

经过使用 ast 和正则表达式,获取 store 中全部文件的定义,在用户使用.vue 文件中时给 出详细的提示,目前支持大多数 vuex 官网中定义的例子git

安装

在扩展中搜索 VueThis$Store,安装便可。github

使用

当你打开一个.vue 文件时,插件会扫描从你的入口文件,开始扫描获得你的 store 全部模 块,以及模块中的(actions,mutations, getters, state),保存必要的定义信息以给出提 示。当你的 vscode 插件的左下角有以下图标
正则表达式

statusBarItem

那么表明扫描 成功,能够获得正确的提示,若是最右边是 x 则表示发生错误(我设置的默 认的入口路径是工做根路径下的 src/main.js,若是失败,会使用备用入口文件 ,src/index.js,若是依然失败,会提示错误让你本身声明入口文件)。 你 shift+(cmd|ctrl)+p 输入 specify entrance path 输入你的 index 文件,(就是你生 成一个 vue 实例的地方),回车。插件会从新扫描,入口文件。

特性

  • 支持最基本的this.$store.state.count类型的提示,当你在其余的 module 中定义了 其余的 state 时, 能够获得下一层 module 和全部相应 state 的提示。
    state
  • 同时支持 mapState,当输入第一个参数时,仅仅提示全部可能的下一个 module(设置了 namespace 的 module) 和官网的机制一致。当设置了命名空间,只会提示当前命名空间 下的 state。
    mapState
  • 支持 mapState 参数为对象的状况,而且支持三种不一样函数写法,经过 ast 获取函数的 第一个参数给出更加精确的提示。
    mapStateObject
  • 支持 从this.$store.getters.xxx这样的形式直接获取 getter,也支持 mapGetters 中 第二个参数是数组或者对象的形式
    mapGetters
  • 同理支持this.$store.committhis.$store.dispatch 提示
    commit

dispatch

  • 支持 mapMutations 参数为数组和对象提示 vuex

    mapMutations

  • 支持 mapActions 参数为数组和对象提示 数组

    mapActions

  • 监听你 store 文件夹的变更,当文件发生变更,会从新收集定义信息,提示也会更新函数

一些提示

由于我没有什么使用大型的应用的经验,因此测试的项目不是不少,我再 github 上找了一 个比较经典的项目vue-elm, 并经过了测试 。可能会有其余没有发现的 bug,若是你在使用中发现任何的 bug,你能够提 issue,最 好能给我 store 的目录结构,最最好能够给我每一个原先 store 目录下全部文件,固然这可 能涉及一些机密,你能够再原结构不变的状况下, 保留几条测试数据就更好了。同时也很是希 望你们能够给我更多建议,但愿这个 vscode 插件可以帮助到广大开发者。:smile:测试

目前存在的问题

  • 不能向 1.28 及如下兼容,只能最新版本。这个问题目前没法解决,我也是第一次开发 vscode 插件,对 vscode 兼容这一块不太了解。
  • 没有友好的错误提示。
  • 由于 vuex 中模块的写法不少,能够直接在对象中定义,能够从外部引入,能够先定义在 文件中定义在直接使用{mutations}这样的方法定义,可能有些写法没有覆盖到没法得 到提示。

补充

能看到这里,说明你仍是有点承认这个项目的吧,因此先厚着脸皮放下本身的项目连接吧。this

项目地址: vue-this-storespa

若是对你有帮助,给个 star 吧^_^.