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 相关文章推荐
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 Vue.js
vue3.0+vue-router+element-plus初实践
Dec 02 Vue.js
vue中如何自定义右键菜单详解
Dec 08 Vue.js
vue项目中openlayers绘制行政区划
Dec 24 Vue.js
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 Vue.js
vue项目实现分页效果
Mar 24 Vue.js
vue+django实现下载文件的示例
Mar 24 Vue.js
vue 实现上传组件
May 31 Vue.js
vue实现水波涟漪效果的点击反馈指令
May 31 Vue.js
Vue实现导入Excel功能步骤详解
Jul 03 Vue.js
Vue的生命周期一起来看看
Feb 24 Vue.js
vue实现Toast组件轻提示
Apr 10 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
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
PHP 日期时间函数的高级应用技巧
2009/10/10 PHP
处理php自动反斜杠的函数代码
2010/01/05 PHP
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
2016/12/29 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
Javascript中的 “&” 和 “|” 详解
2017/02/02 Javascript
JS实现中国公民身份证号码有效性验证
2017/02/20 Javascript
详解angular2封装material2对话框组件
2017/03/03 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)
2018/01/09 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
详解Vue组件之间通信的七种方式
2019/04/14 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
JavaScript如何判断对象有某属性
2020/07/03 Javascript
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python 布尔操作实现代码
2013/03/23 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
tensorflow: 查看 tensor详细数值方法
2018/06/13 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
python实现批量转换图片为黑白
2020/06/16 Python
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
Giuseppe Zanotti美国官方网站:将鞋履视为高级时装般精心制作
2018/02/06 全球购物
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
大专毕业生简历的自我评价
2013/10/20 职场文书
连锁经营管理专业大学生求职信
2013/10/30 职场文书
市场营销职业生涯规划书范文
2014/01/12 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
Python数据分析入门之数据读取与存储
2021/05/13 Python