vue 实现基础组件的自动化全局注册


Posted in Vue.js onDecember 25, 2020

参考官网:https://cn.vuejs.org/v2/guide/components-registration.html

在日常开发中,有一些组件是比较常用,但是为了避免在开发过程中不停地引入,或者在main.js中注册,,或者每添加一个组件就需要手动注册一次。则直接进行自动化全局注册。

自动化全局注册,官网上都详细的说明,以下是自己官网的说明基础上进行了一个demo开发实例:

1、自定义文件夹:

在src下新建一个components文件夹,用于存放组件。并新建一个用于存放需要自动化全局注册的组件,例如base。

vue 实现基础组件的自动化全局注册

2、在base文件夹下定义index.js,具体代码如下示:

// 基础组件的自动化全局注册
import Vue from 'vue'
const requireComponent = require.context(
    // 其组件目录的相对路径
    './',
    // 是否查询其子目录
    true,
    // 匹配基础组件文件名的正则表达式
    /\.vue$/
  )
  requireComponent.keys().forEach(fileName => {
    // 获取组件配置
    const componentConfig = requireComponent(fileName)
    // 全局注册组件
    Vue.component(
        componentConfig.default.name,   // 此处的name,是组件属性定义的name
        // 如果这个组件选项是通过 `export default` 导出的,
        // 那么就会优先使用 `.default`,
        // 否则回退到使用模块的根。
        componentConfig.default
    )
  })

以上代码需要解释的地方:

1、匹配基础组件文件名的正则表达式,此处需要根据实际的组件名称和规则进行配置;

2、componentConfig.default.name此处用到的,是表示组件的名称,并不是固定的写法。可以用不同的写法来表示组件名称,例如可以直接解析fileName得出文件夹的名称作为组件名称也是可以的。componentConfig.default.name中的name,来自于组件定义的时候页面的name。若页面没有定义name,则报错。

vue 实现基础组件的自动化全局注册

3、在main.js中引入index.js文件

由于全局注册的行为必须在根 Vue 实例 (通过 new Vue) 创建之前发生。

// 基础组件的自动化全局注册。全局注册的行为必须在根 Vue 实例 (通过 new Vue) 创建之前发生
import './components/base/index'

vue 实现基础组件的自动化全局注册

4、直接在需要的地方使用该组件即可

vue 实现基础组件的自动化全局注册

页面效果如下示:

vue 实现基础组件的自动化全局注册

以上就是vue 实现基础组件的自动化全局注册的详细内容,更多关于vue 组件全局注册的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
在Vue中使用mockjs代码实例
Nov 25 Vue.js
Vue+element-ui添加自定义右键菜单的方法示例
Dec 08 Vue.js
Vue+penlayers实现多边形绘制及展示
Dec 24 Vue.js
SpringBoot+Vue 前后端合并部署的配置方法
Dec 30 Vue.js
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 Vue.js
vue3弹出层V3Popup实例详解
Jan 04 Vue.js
Vue中避免滥用this去读取data中数据
Mar 02 Vue.js
vue-router中hash模式与history模式的区别
Jun 23 Vue.js
Vue的生命周期一起来看看
Feb 24 Vue.js
关于vue-router-link选择样式设置
Apr 30 Vue.js
vue postcss-px2rem 自适应布局
May 15 Vue.js
vue中data里面的数据相互使用方式
Jun 05 Vue.js
vue 使用class创建和清除水印的示例代码
Dec 25 #Vue.js
基于vue+echarts数据可视化大屏展示的实现
Dec 25 #Vue.js
vue3使用vue-count-to组件的实现
Dec 25 #Vue.js
vue+openlayers绘制省市边界线
Dec 24 #Vue.js
vue项目中openlayers绘制行政区划
Dec 24 #Vue.js
Vue+penlayers实现多边形绘制及展示
Dec 24 #Vue.js
Vue使用鼠标在Canvas上绘制矩形
Dec 24 #Vue.js
You might like
php实现事件监听与触发的方法
2014/11/21 PHP
php+xml实现在线英文词典之添加词条的方法
2015/01/23 PHP
浅谈PHP接收POST数据方式
2015/06/05 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
jquery文字上下滚动的实现方法
2013/03/22 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
DOM基础教程之使用DOM + Css
2015/01/20 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
react+redux的升级版todoList的实现
2017/12/18 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
详解如何在微信小程序中愉快地使用sass
2018/07/30 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
2019/02/26 Javascript
JavaScript函数定义方法实例详解
2019/03/05 Javascript
javascript设计模式 ? 享元模式原理与用法实例分析
2020/04/15 Javascript
Python import用法以及与from...import的区别
2015/05/28 Python
Python Flask基础教程示例代码
2018/02/07 Python
python之pandas用法大全
2018/03/13 Python
Python 实现加密过的PDF文件转WORD格式
2020/02/04 Python
python进度条显示之tqmd模块
2020/08/22 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
2020/10/15 Python
python 基于wx实现音乐播放
2020/11/24 Python
css3闪亮进度条效果实现思路及代码
2013/04/17 HTML / CSS
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
澳大利亚网上书店:QBD
2021/01/09 全球购物
助人为乐表扬信范文
2014/01/14 职场文书
小学班主任寄语大全
2014/04/04 职场文书
《理想的风筝》教学反思
2014/04/11 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
医学生自荐信范文
2015/03/05 职场文书
如何解决.cuda()加载用时很长的问题
2021/05/24 Python
springboot中rabbitmq实现消息可靠性机制详解
2021/09/25 Java/Android
Mysql数据库group by原理详解
2022/07/07 MySQL