vue插件之全局引入所有组件文件

65 阅读1分钟

``


    plugin/index.js :
    /**
     * require.context接收三个参数,1- 组件存放位置, 2- 布尔值,是否读取子文件夹中的组件, 3- 正则匹配所有vue文件
     */
    const importFn = require.context('./components/',false,/\.vue$/)
    
    /**
     * 插件核心,vue插件会调用install方法,其中方法体中就是引入所有组件内容
     */
     export default {
         install(vm) {
             importFn.keys().forEach(path => {
             //根据路径拿到组件实例,注册到vm上
                 const component = importFn(path).default
                 vm.component(component.name,component)
             })
         }
     }
     
    main.js :
    import Vue from "vue"
    import Plugin from "./plugin/index"
    Vue.use(Plugin)