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中的数据进行加工形成的新数据不会生效
    })
  • 相关阅读:
    原生js操作Dom命令总结
    JSON语法、对象、遍历数组的区别和基本操作
    JavaScript数组方法
    JavaScript基本语法
    JavaScript
    CSS外边框、边界样式常用组合
    HTML特殊符号(字符实体)大全
    CSS设置边框、符号、背景样式、链接属性
    CSS样式链接和文字常用属性
    k8s kubernetes给node节点添加标签和删除node节点标签
  • 原文地址:https://www.cnblogs.com/zwh0910/p/15643247.html
Copyright © 2011-2022 走看看