zoukankan      html  css  js  c++  java
  • store/index.js中引入并注册modules目录中的js文件:require.context

    一、常规方式

    1)、先引入

    import user from './modules/user'
    import app from './modules/app'
    import settings from './modules/settings'

    2)、注册到modules中

    modules: {
          user,
          app,
          settings
        },

    代码如下:

    import Vue from 'vue'
    import Vuex from 'vuex'
    import user from './modules/user'
    import app from './modules/app'
    import settings from './modules/settings'
    import getters from './getters'
    
    Vue.use(Vuex)
    
      export default new Vuex.Store({
        modules: {
          user,
          app,
          settings
        },
        getters // 注意:这里必须写getters,否则你再getters.js中对state中的数据进行加工形成的新数据不会生效
      })

    二、使用require.context

    store中需要引入很多modules/*.js , 可以使用require.context

    require.context()

    require.context(directory, useSubdirectories, regExp)
    • directory:要搜索的目录
    • 是否搜索其子目录
    • 匹配文件的正则表达式

    代码如下:

    const modulesFiles = require.context("./modules", false, /\.js$/);
    
    const modules = modulesFiles.keys().reduce((modules, modulePath) => {
      const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, "$1");
      const value = modulesFiles(modulePath);
      modules[moduleName] = value.default;
      return modules;
    }, {});
    
    
    export default new Vuex.Store({
      modules,
      getters // 注意:这里必须写getters,否则你再getters.js中对state中的数据进行加工形成的新数据不会生效
    })
  • 相关阅读:
    控制反转(IOC)/依赖注入(DI)理解
    MySQL常用命令总结
    Java继承与清理
    Java组合与继承生成的类中构造函数的执行顺序
    Java中4种权限的理解
    C# 选项卡控件
    USMART 组件移植到STM32
    c# 规范用户输入控件
    c# 图像呈现控件PictureBox
    C# 制作软件启动界面
  • 原文地址:https://www.cnblogs.com/zwh0910/p/15643247.html
Copyright © 2011-2022 走看看