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中echarts的用法及与elementui-select的协同绑定操作
Nov 17 Vue.js
详解vue实现坐标拾取器功能示例
Nov 18 Vue.js
vue添加自定义右键菜单的完整实例
Dec 08 Vue.js
Vue中computed和watch有哪些区别
Dec 19 Vue.js
Vue实现小购物车功能
Dec 21 Vue.js
Vue中inheritAttrs的使用实例详解
Dec 31 Vue.js
vue实现防抖的实例代码
Jan 11 Vue.js
Vite和Vue CLI的优劣
Jan 30 Vue.js
vue3获取当前路由地址
Feb 18 Vue.js
前端vue+express实现文件的上传下载示例
Feb 18 Vue.js
vue3引入highlight.js进行代码高亮的方法实例
Apr 08 Vue.js
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
Apr 24 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
php中的一个中文字符串截取函数
2007/02/14 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
php正则表达式使用方法整理集合
2020/01/31 PHP
PHP7 新增常量
2021/03/09 PHP
javascript中的prototype属性实例分析说明
2010/08/09 Javascript
js 赋值包含单引号双引号问题的解决方法
2014/02/26 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
[01:53]3.19 DOTA2发布会 现场精彩Coser表演
2014/03/25 DOTA
Python的高级Git库 Gittle
2014/09/22 Python
python中根据字符串调用函数的实现方法
2016/06/12 Python
Python方法的延迟加载的示例代码
2017/12/18 Python
python线程池threadpool实现篇
2018/04/27 Python
Python面向对象基础入门之设置对象属性
2018/12/11 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
Python面向对象程序设计之私有属性及私有方法示例
2019/04/08 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
基于python实现学生信息管理系统
2019/11/22 Python
浅谈CSS3 动画卡顿解决方案
2019/01/02 HTML / CSS
CSS3颜色值RGBA与渐变色使用介绍
2020/03/06 HTML / CSS
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
家得宝墨西哥官网:The Home Depot墨西哥
2019/11/18 全球购物
金蝶的一道SQL笔试题
2012/12/18 面试题
thinkphp5 redis缓存新增方法实例讲解
2021/03/24 PHP
《蚂蚁和蝈蝈》教学反思
2014/02/24 职场文书
中考冲刺决心书
2014/03/11 职场文书
2015年城管执法工作总结
2015/07/23 职场文书
社区服务活动感想
2015/08/11 职场文书
golang 比较浮点数的大小方式
2021/05/02 Golang