一款超级好用的VueX按模块化动态挂载的插件vuex-modules-expand同步支持vue2和vue3高效分割庞大Vuex代码,有效降低vue项目首页白屏

393 阅读1分钟

vuex-modules-expand

一款简单便捷超级好用的VueX按模块化动态挂载的插件vuex-modules-expand,他来啦,同步支持vue2和vue3,高效分割庞大Vuex代码,有效降低vue项目首页白屏问题。支持组件间动态复用vuex模块,且同时支持单组件同时动态复用一个或多个vuex模块。GitHub仓库 喜欢的话给个Stars支持一下吧。嘻嘻

npm

Install

npm install vuex-modules-expand

Import

// main.js
import { createApp } from "vue"; // 依赖vue (rely on Vue)
import store from "./store";
import vuexModuleExpand from "vuex-modules-expand"; // vuex按模块需求动态载入(Dynamic loading as required by the module)

Use

// main.js
app.use(vuexModuleExpand);// 注册插件(To register the plugin)

Vue

<template>
  <div>
  </div>
</template>

<script>
// @ is an alias to /src
import { onBeforeMount, toRefs, reactive, getCurrentInstance } from "vue";
// 从 vuex 中导入 useStore 方法
import { useStore } from "vuex";
/**
 * 重要参数说明:
 * isVuex--在组件模块中定义此属性,为boolean类型 接收值 true/false;
 * fitVuexModuleName--在组件模块中定义此属性,为String类型 或者Array<String> 类型,接收值例如:"Login"/["Login", "ContractFilmList"];
 */
export default {
  isVuex: true, // 是否使用动态加载的vux模块
  fitVuexModuleName: "Contract", // 如果不指定 默认取值name
  name: "contant", // 如果不指定 默认取此值
  components: {},
  setup() {
    return {};
  },
};
</script>

<style lang="scss" scoped>
</style>

Description

此插件用于按模块化动态分割按需注册vuex

// this.$options对象即为例如.vue文件中 export default 导出的模块属性对象集合
// this.$options.fitVuexModuleName 取值取的为自定义使用vuex仓库的指定模块的名称。 如果不指定 默认取值 this.$options.name 模块名 name

Author List

@kaysem 转载请注明出处。