美文网首页
Vue注册组件

Vue注册组件

作者: 妮儿_smile | 来源:发表于2020-10-20 16:35 被阅读0次

task

把写在components/common下面的组件, 通过install和Vue.use的方法统一管理, 避免在每个页面引入并注册组件

action

参考文章:https://www.cnblogs.com/Mr-Rshare/p/11658786.html
实现思路, 在components/common文件夹下, 新建 config.js文件, 该文件实现的内容:

  1. 通过require获取到当前文件夹下所有组件vue文件.
  2. 通过toUpperCase()方法获取到同名的组件Name
  3. 在myFunc函数中, 遍历所有组件. Vue.component(step2获取的组件name, step1获取的组件)

具体代码如下

import Vue from 'vue';

// 修改文件名首字母大写
function changeComponentName(str) {
    return str.charAt(0).toUpperCase() + str.slice(1);
}

// 获取当前文件夹下的的组件
// require.context 三个参数  第一个表示读取文件的路径  第二个表示是否遍历文件的子目录   第三个表示匹配的文件的正则
const requireComponent = require.context('.', false, /\.vue$/);

const myFunc = () => {
    requireComponent.keys().forEach(fileName => {
        const config = requireComponent(fileName);
        const componetName = changeComponentName(
            // 去掉开头 ./  以及后面.vue
            fileName.replace(/^\.\//, '').replace(/\.\w+$/, '')
        );
        Vue.component(componetName, config.default || config);
    })
}

export default myFunc

在main.js中引入该文件并Vue.use

import commonComponents from '@/components/common/config.js'

Vue.use(commonComponents)

相关文章

网友评论

      本文标题:Vue注册组件

      本文链接:https://www.haomeiwen.com/subject/obedmktx.html