最近仿写一个项目,如下目录,基地内部都是一些基础的组件,但是并没有在主要。js中使用常规的方式去全局注册的,刚开始还不明白没有注册的组件怎么在全局使用的
//main.js 从“进口全球。/跑龙套/全球的 Vue.use(全球)//解释:如果自动化的代码直接写在一个js文件中直接全局的引入主要。js中也是没有问题的,//但是这里是按照自定义插件的方式写下全球文件中的就要使用vue的使用方法
自定义全球插件,通过全局的Vue.use(全球)来调用
//global.js 进口{ 输入, 对话框中, 从“element-ui”} 从“进口VueLazyload vue-lazyload” 从“vue-meta”进口元 进口*的跑龙套”。/指数” 出口默认{ 安装(Vue) { const requireComponent=require.context ( “@/基地”, 真的,/(a-z0-9) + \。(jsx # 63; | vue) $/我, )//console.log (requireComponent);//console.log (requireComponent.keys ())//console.log (requireComponent.resolve)//console.log (requireComponent.id)//console.log (requireComponent.resolve (“。/tabs.vue”))//console.log (requireComponent (”。/tabs.vue "));//console.log (requireComponent (“。/tabs.vue”)===要求(“@//标签基数”));//批量注册基础组件 requireComponent.keys ()。forEach(文件名=比;{ const componentConfig=requireComponent(文件名) const componentName=componentConfig.default.name 如果(componentName) { Vue.component (componentName componentConfig.default | | componentConfig) } }) Vue.prototype。$元素={大小:“小”} Vue.prototype。$跑龙套=跑龙套 Vue.use(输入) Vue.use(对话框) Vue.use(元) }, }
解析require.context
const requireComponent=require.context ( “@/基地”, 真的,/(a-z0-9) + \。(jsx # 63; | vue) $/我, )
要求。上下文返回一个webpack的上下文环境,返回的是一个函数,
有三个参数:
-
<李>要搜索的文件夹目录,(不可以是变量,webpack在编译阶段无法定位目录)李>
<李>是否还要再搜索他的子目录李>
<李>匹配文件的正则表达式李>
要求。上下文(目录、useSubdirectories regExp);
<强>总结:强>
-
<李> require.context模块返回一个函数,这个函数可以接受一个参数,李>
<李>要求。上下文的第一个参数不可以是变量,webpack在编译阶段无法定位到目录李>
<李>有三个属性和方法,决心,钥匙,id
-
<李>解决是一个函数,传入文件的路径得到解析后的模块的id 李>
<李>键是一个函数,返回所有文件路径组成的数组李>
<李> id是上下文环境中包含的模块的id,可能在使用module.hot。接受(热模块更新)时使用李>
看下面两幅图片解析的更清晰
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。