• 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中的数据进行加工形成的新数据不会生效
    })
  • 相关阅读:
    进程对象的属性或方法详解
    进程理论以及开启子进程的两种方式
    计算机发展史(多道技术)
    基于socketserver实现的并发(tcp和udp)
    基于udp协议的套接字及udp协议粘包问题
    模拟ssh的远程网络传输
    周考题目及答案
    c/s架构搭建
    网络编程基础
    10.16模拟赛(湖南集训)
  • 原文地址:https://www.cnblogs.com/zwh0910/p/15643247.html
Copyright © 2020-2023  润新知