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 25 Vue.js
Vue Elenent实现表格相同数据列合并
Nov 30 Vue.js
Vue3 实现双盒子定位Overlay的示例
Dec 22 Vue.js
vue实现简易计算器功能
Jan 20 Vue.js
Vue 实例中使用$refs的注意事项
Jan 29 Vue.js
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 Vue.js
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
Feb 20 Vue.js
详解vite+ts快速搭建vue3项目以及介绍相关特性
Feb 25 Vue.js
Vue和Flask通信的实现
May 19 Vue.js
vue 实现弹窗关闭后刷新效果
Apr 08 Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 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可逆加密函数(分享)
2013/06/06 PHP
微信支付开发订单查询实例
2016/07/12 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
用js查找法实现当前栏目的高亮显示的代码
2007/11/24 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
JavaScript中逗号运算符介绍及使用示例
2015/03/13 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
Python多线程学习资料
2012/12/19 Python
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
Django框架模板介绍
2019/01/15 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
Python List cmp()知识点总结
2019/02/18 Python
Django 框架模型操作入门教程
2019/11/05 Python
Django如何批量创建Model
2020/09/01 Python
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
德国团购网站:Groupon德国
2018/03/13 全球购物
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
瑞典手机壳品牌:Richmond & Finch
2018/04/28 全球购物
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
合作意向书模板
2014/03/31 职场文书
监察建议书格式
2014/05/19 职场文书
2014年应急工作总结
2014/12/11 职场文书
春秋淹城导游词
2015/02/11 职场文书
宣传部部长竞选稿
2015/11/21 职场文书
python在package下继续嵌套一个package
2022/04/14 Python
python绘制简单直方图(质量分布图)的方法
2022/04/21 Python