vue组件一直注册不了_Vue 组件批量注册

Vue应用有时候组件多了,一个一个注册引用很麻烦,其实可以把组件文件夹批量注册,然后按需引用。

首先在组件文件夹里创建一个 index.js 的文件,里面写扫描此路径下所有组件的逻辑:

//扫描此文件夹下的所有的`.vue` 文件,并注册

const componentsWatcher = scanner => {

scanner.keys().map(key => {

let name = scanner(key).default.name

if (name) {

Vue.component(name, function(resolve) {

require([key + ''], resolve)

})

}

})

}

//扫描匹配条件

const vueScanner = require.context(

'@/components',

true,

/^\.\/((?!\/)[\s\S])+\/index\.vue$/

)

//扫描

componentsWatcher(vueScanner)

image.png

在把 components 文件夹引入到main.js 里

(() => {

Promise.all([

import('@/components'),

import('./App.vue'),

import('./router'),

import('./store')

]).then(([{ default: App }, { default: router }, { default: store }]) => {

new Vue({

el: '#app',

router,

store,

render: h => h(App)

})

})

})()

这样只要把组件放在components文件夹下面,不需要注册,调用的地方按需引用直接调用即可:

import { myComponent } from '@/components'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值