vue批量注册全局组件(vue无需引用即可在页面使用组件)

平时我们在开发时使用一些组件频率比较高的时候每个页面都去引入就会比较麻烦,这时我们可以全局去注册这些组件,然后就不用每个页面去引用了

普通单个注册

组件内或根目录新建components.js文件

import Card from '@/components/card/card.vue'

let customComponents = {
    install:function(Vue){//在use的时候vue会自动调用此方法
         Vue.component('Card', Card)//注册当前组件
    }
}
export default customComponents;

main.js

import customComponents from '@/components/index/components.js'
Vue.use(customComponents);

批量注册

借助require.context()方法

let customComponents = {
    install:function(Vue){//在use的时候vue会自动调用此方法
            const files = require.context("@/components", true, /\.vue$/)//返回的是一个函数
            // require.context()的参数
            // 参数一 {String}:读取文件的目录路径    
            // 参数二 {Boolean}:是否深入遍历,即是否遍历子目录(二级目录)
            // 参数三 {RegExp}:匹配目录内文件的正则表达式/\.vue$/表示匹配所有.vue后缀名的文件
            console.log(files.keys(),'files.keys()')//files.keys()可以得到所有匹配到文件路径(数组)
            files.keys().forEach(item=>{
                console.log(files(item),'files(item)')//传入路径即可得到当前路径文件vue实例
                const name = files(item).default.name//当前组件的名字(组件内一定要有name属性)
                Vue.component(name, defaultObj)//注册当前组件
            })
    }
}
export default customComponents;

main.js

import customComponents from '@/components/index/components.js'
Vue.use(customComponents);

批量注册二

新建index.js文件将需要注册的组件统一引入然后统一暴露

import Card from '@/components/card/card.vue'
import Search from "@/components/RPM/search/search.vue"
export{
    Card,
    Search
}
let customComponents = {
    install:function(Vue){//在use的时候vue会自动调用此方法
            import('@/components/index/index.js').then(res=>{
                Object.keys(res).forEach(item=>{
                    Vue.component(item,res[item])
                 })
             })
    }
}
export default customComponents;

main.js

import customComponents from '@/components/index/components.js'
Vue.use(customComponents);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值