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中音频wavesurfer.js的使用方法
Feb 20 Vue.js
详解如何在vue+element-ui的项目中封装dialog组件
Dec 11 Vue.js
详解Vue2的diff算法
Jan 06 Vue.js
Vuex实现简单购物车
Jan 10 Vue.js
vue实现验证用户名是否可用
Jan 20 Vue.js
Vue3 Composition API的使用简介
Mar 29 Vue.js
如何使用vue3打造一个物料库
May 08 Vue.js
Vue3.0中Ref与Reactive的区别示例详析
Jul 07 Vue.js
vue封装数字翻牌器
Apr 20 Vue.js
vue router 动态路由清除方式
May 25 Vue.js
vue ant design 封装弹窗表单的使用
Jun 01 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 使用redis简单示例分享
2015/03/05 PHP
什么是PHP文件?如何打开PHP文件?
2017/06/27 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
PHP的cookie与session原理及用法详解
2019/09/27 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
javascript 写类方式之九
2009/07/05 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
JavaScript获取路径设计源码
2014/05/22 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
2016/08/05 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
2016/12/14 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
2017/05/25 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
基于vue-cli配置lib-flexible + rem实现移动端自适应
2017/12/26 Javascript
js推箱子小游戏步骤代码解析
2018/01/10 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
js循环map 获取所有的key和value的实现代码(json)
2018/05/09 Javascript
element UI upload组件上传附件格式限制方法
2018/09/04 Javascript
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
JavaScript怎样在删除前添加确认弹出框?
2019/05/27 Javascript
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
wxPython之解决闪烁的问题
2018/01/15 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
完美解决keras保存好的model不能成功加载问题
2020/06/11 Python
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
中国电子产品批发商/跨境电商/外贸网:Sunsky-online
2020/04/20 全球购物
数控机械专业个人的自我评价
2014/01/02 职场文书
消防安全汇报材料
2014/02/08 职场文书
中班中秋节活动反思
2014/02/18 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
赔偿协议书
2015/01/27 职场文书
护士年终个人总结
2015/02/13 职场文书