批量自动注册组件

首先我们得知道为什么需要注册组件?

通常我们注册组件的话, 是因为该组件可能是一个公用组件; 在很多地方会使用到

当我们将一个组件进行注册之后, 我们就可以像使用 html 标签一样; 在全局任何地方都可以使用

手动的注册全局组件:

import XtxBread from './xtx-bread.vue'

export default {
  install (app) {
    app.component('XtxBread', XtxBread)
  }
}
// main.js
import UI from '@/components/library'

createApp(App).use(store).use(router).use(UI).mount('#app')

批量的自动注册组件:

  • 主要使用的是 commonJS 中 require 中的一个方法 context
  • context 函数的作用使用加载某一个文件夹下面的所有正则匹配通过的文件或子文件
    • 此函是第一个参数是在哪一个路径下面
    • 第二个参数是, 是否加载子文件(布尔值)
    • 第三个参数是, 正则
  • context 函数有一个返回值, 返回值是一个导入对象函数(我将它取名为 importFn)
  • 在 js 中万物皆对象, imprortFn 这个函数也是一个对象; 它其中有一个方法是 keys
  • keys 可以获取加载的所有文件路径(返回值是一个数组)
  • 对返回的数据进行遍历, 对每一个加载的组件进行注册即可
// 加载当前文件下面, 以.vue结尾的文件(不包含子文件)
const importFn = require.context('./', false, /\.vue$/)

export default {
  install (app) {
    importFn.keys().forEach(key => {
      // 导入组件
      // importFn(key)将所有已经加载的文件路径进行导入
      // .default是获取组件中export default默认导出的内容
      // 这里的component就相当于导入的组件
      const component = importFn(key).default

      // 注册组件
      app.component(component.name, component)
    })

  }
}

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值