1、在组件目录下,新建一个 index.js 文件,使用代码将该目录下所有 *.vue 文件提取,并遍历统一注册,并且封闭成插件;
/* 自动化注册全局组件 */
import Vue from 'vue';
function install () {
var reFun = require.context('./', true, /\.vue$/i);
var reArr = reFun.keys();
reArr.map(function (item) {
var vueMoud = reFun(item)['default'];
var modObj = vueMoud.name;
Vue.component(modObj, vueMoud);
});
};
export default { install };2、在入口文件 main.js (默认是main.js,请以项目实际入口文件为主)导入该文件,使用 Vue.use() 命令注册;
import AutoReg from 'components/index.js'; Vue.use(AutoReg);
3、需要注意的是,定义的所有组件暴露的模块中,必须包括有 name 属性,使用时请以 name 值作为组件名;
// 定义组件
<template>
<div>
<div class="demo-msg">{{ msg }}</div>
</div>
</template>
<script>
export default {
name: 'DemoCom',
data () {
return {
msg: '这是一个DEMO自动化注册组件实例'
}
}
}
</script>// 使用组件 <template> <div> <DemoCom></DemoCom> </div> </template>
4、至此,我们在定义完组件之后,无需引入注册,可直接在项目全局任何一个地方直接引用。到这里感觉有点上头了……

发表评论