vue2 webpack版批量注册全局组件

46 篇文章 1 订阅

使用背景

用vue开发的所有项目,都是采用组件化的思想开发的,分为公共组件和功能组件。

又可以分为全局自定义组件和局部自定义组件,全局自定义组件在main.js文件直接引入,这种是最简单的方式。

使用缺点

如果我们需要注册的全局组件非常多,那么需要一个一个引入,然后分别调用Vue.componet方法,main.js文件会变得很大很臃肿,不好维护

webpack批量注册组件

webpack提供的一个自动导入的API 

require.context(directory, flag, regExp)

参数1:要导入的当前模块的文件夹目录

参数2:是否加载子目录

参数3:正则,匹配文件

返回值:导入函数 fn

使用require提供的函数context加载某一个目录下所有的.vue后缀的文件

返回值是一个对象,对象里面有一个属keys(), 可以获取所有的文件路径

我们可以遍历importFn.keys()

最后在遍历中使用app.component(component.name, component)全局注册

 在compontents组件文件夹下新建 .js文件

import Vue from 'vue'

const requireComp = require.context('.', true, /\.vue$/)

requireComp.keys().forEach((fileName) => {
  const config = requireComp(fileName)
  Vue.component(config.default.name, config.default || config)
})

 在main.js中导入

import '@/components/componentRegister.js'

在.vue中直接使用 

<template>
  <div>
    <menu />
    <!-- 或 -->
    <MENU />
  </div>
</template>;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值