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+vant实现购物车全选和反选功能
Nov 17 Vue.js
如何使用 vue-cli 创建模板项目
Nov 19 Vue.js
vue+elementUI动态增加表单项并添加验证的代码详解
Dec 17 Vue.js
SpringBoot+Vue 前后端合并部署的配置方法
Dec 30 Vue.js
手写Vue源码之数据劫持示例详解
Jan 04 Vue.js
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
Jan 22 Vue.js
vue中三级导航的菜单权限控制
Mar 31 Vue.js
vue backtop组件的实现完整代码
Apr 07 Vue.js
vue响应式原理与双向数据的深入解析
Jun 04 Vue.js
Vue过滤器(filter)实现及应用场景详解
Jun 15 Vue.js
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
vue使用refs获取嵌套组件中的值过程
Mar 31 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
咖啡豆要不要放冰箱的原因
2021/03/04 冲泡冲煮
Php+SqlServer实现分页显示
2006/10/09 PHP
PHP实现Socket服务器的代码
2008/04/03 PHP
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
2015/08/21 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
2016/07/18 PHP
常用的javascript function代码
2008/05/23 Javascript
js身份证验证超强脚本
2008/10/26 Javascript
JS隐藏参数post传值实例
2013/04/18 Javascript
js Object2String方便查看js对象内容
2014/11/24 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
jQuery操作Table技巧大汇总
2016/01/23 Javascript
jQuery实现图片加载完成后改变图片大小的方法
2016/03/29 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
Vue $mount实战之实现消息弹窗组件
2019/04/22 Javascript
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
基于Python __dict__与dir()的区别详解
2017/10/30 Python
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
详解Python之unittest单元测试代码
2018/01/24 Python
Python加载带有注释的Json文件实例
2018/05/23 Python
python实现三维拟合的方法
2018/12/29 Python
Django框架中间件(Middleware)用法实例分析
2019/05/24 Python
Numpy与Pytorch 矩阵操作方式
2019/12/27 Python
python重要函数eval多种用法解析
2020/01/14 Python
自定义html标记替换html5新增元素
2008/10/17 HTML / CSS
植村秀美国官网:Shu Uemura美国
2019/03/19 全球购物
党建示范点实施方案
2014/03/12 职场文书
离婚协议书范文2014
2014/10/16 职场文书
导师对论文的学术评语
2015/01/04 职场文书
募捐感谢信
2015/01/22 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
股权投资协议书
2016/03/23 职场文书
深入探讨opencv图像矫正算法实战
2021/05/21 Python
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server