vue批量引入组件

方式一,在页面引入的方式
function camelCase(s) {
    return s.replace(/-\w/g,function(x){
        return x.slice(1).toUpperCase()
    })
}

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

let resComponents = {}

allComponents.keys().forEach(comName=>{
    let name = camelCase(comName)
    const comp = allComponents(comName)
    resComponents[name.replace(/^\.\/(.*)\.\w+$/,"$1")] = comp.default
})

export default resComponents
 
方式二:全局方式
const requireComponent = require.context(
        // 其组件目录的相对路径
        './components',
        // 是否查询其子目录
        true,
        // 匹配基础组件文件名的正则表达式
        /\.vue$/
    )

    // console.log('实时',requireComponent);

    requireComponent.keys().forEach(fileName => {
        // console.log('fie',fileName);
        // 获取组件配置
        const componentConfig = requireComponent(fileName)
        // 全局注册组件
        Vue.component(
            componentConfig.default.name,   // 此处的name,是组件属性定义的name
            // 如果这个组件选项是通过 `export default` 导出的,
            // 那么就会优先使用 `.default`,
            // 否则回退到使用模块的根。
            componentConfig.default
        )
    })


posted @   小寒爱吃西红柿  阅读(824)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示