动态引入全局组件

大致思路: 

  通过  webpack中require.context的作用 读取到 指定文件夹下文件名 , 及export default 出的内容 , 然后在vue全局注册

 

这篇讲的还行吧webpack中require.context的作用

目录结构

 

 

全局组件和global.js 在同级目录下

 bus.js可以忽略

Global.vue 为全局组件

 

global.js

import Vue from "vue";
//首字母大写
function changeStr(str) {
    return str.charAt(0).toUpperCase() + str.slice(1)
}
//require.context()=>动态引入文件
//1.路径
//2.是否匹配子级文件
//3.规则 

const requireComponent = require.context('.', false, /\.vue$/); //可以匹配指定基础组件文件名的正则表达式

requireComponent.keys().forEach(fileName => {
    const config = requireComponent(fileName);
    console.log(fileName)
    const componentName = changeStr(
        fileName.replace(/^\.\//, '').replace(/\.\w+$/, '')
    )
    console.log(config.default)
    Vue.component(componentName, config.default || config)
})

 

然后再main.js中引入

import './common/global.js'

 

然后就可以在全局使用 Global.vue

 

posted @ 2021-06-30 16:01  混名汪小星  阅读(103)  评论(0编辑  收藏  举报