vue之require.context

require.context(dir, useChild, regExp)

 参数说明:
 1.  你要引入文件的目录
 2. 是否要查找该目录下的子级目录
 3. 匹配要引入的文件

返回:
1. context.require 返回一个require 函数:

function webpackContext(req) {
    return __webpack_require__(webpackContextResolve(req));
  }

返回函数有3个属性:resolve 、keys、id

    · resolve: 是一个函数,他返回的是被解析模块的id

    · keys: 也是一个函数,他返回的是一个数组,该数组是由所有可能被上下文模块解析的请求对象组成

    · id:上下文模块的id

实现动态注册全局组件

import Vue from 'vue'
function capitalizeFirstLetter(str) {
  return str.charAt(0).toUpperCase() + str.slice(1)
}
function validateFileName(str) {
  return /^\S+\.vue$/.test(str) &&
    str.replace(/^\S+\/(\w+)\.vue$/, (rs, $1) => capitalizeFirstLetter($1))
}
const requireComponent = require.context('./', true, /\.vue$/)
requireComponent.keys().forEach(filePath => {
  const componentConfig = requireComponent(filePath)
  const fileName = validateFileName(filePath)
  const componentName = fileName.toLowerCase() === 'index'
    ? capitalizeFirstLetter(componentConfig.default.name)
    : fileName
  Vue.component(componentName, componentConfig.default || componentConfig)
}) 

你可能感兴趣的:(vue,vue实践)