vue 注册全局组件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// ------------- 获取文件名作为全局组件名 ----------- //
const getFileName = (str: string): string => {
    return str.replace(/(.*\/)*([^.]+).*/gi, '$2');
};
 
// ------------- 注册全局组件 ----------- //
export function registerComponent(app: any): void {
    // for (const key in componentObj) {
    //  app.component(key, componentObj[key]);
    // }
    const requireComponent = require.context(
        // 其组件目录的相对路径
        './',
        // 是否查询其子目录
        true,
        // 匹配大写开头组件文件名的正则表达式
        /[A-Z]\w+\.(vue|ts)$/ // 大写开头, "./baseButton/Bbutton.vue"
    );
    requireComponent.keys().forEach((fileName) => {
        // 获取组件配置
        const componentConfig = requireComponent(fileName);
        // 获取组件的 PascalCase 命名, 如Bbutton
        const componentName = getFileName(fileName);
        // 全局注册组件
        app.component(
            componentName,
            // 如果这个组件选项是通过 `export default` 导出的,
            // 那么就会优先使用 `.default`,
            // 否则回退到使用模块的根。
            componentConfig.default || componentConfig
        );
    });
}

  

posted @   AlanTao  阅读(334)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2016-10-19 javascript中的this
点击右上角即可分享
微信分享提示