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+iview分页组件的封装
Nov 17 Vue.js
在Vue中使用Echarts可视化库的完整步骤记录
Nov 18 Vue.js
在Vue中使用CSS3实现内容无缝滚动的示例代码
Nov 27 Vue.js
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
Dec 15 Vue.js
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
Jan 08 Vue.js
关于vue中如何监听数组变化
Apr 28 Vue.js
Vue详细的入门笔记
May 10 Vue.js
vue-router中hash模式与history模式的区别
Jun 23 Vue.js
vue.js Router中嵌套路由的实用示例
Jun 27 Vue.js
vue代码分块和懒加载非必要资源文件
Apr 11 Vue.js
vue router 动态路由清除方式
May 25 Vue.js
Vue2项目中对百度地图的封装使用详解
Jun 16 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两种去掉数组重复值的方法比较
2014/06/19 PHP
php实现读取超大文件的方法
2014/07/28 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
浅谈PDO的rowCount函数
2015/06/18 PHP
教你在PHPStorm中配置Xdebug
2015/07/27 PHP
php简单实现短网址(短链)还原的方法(测试可用)
2016/05/09 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
一个对于js this关键字的问题
2007/01/09 Javascript
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
Javascript 面向对象 重载
2010/05/13 Javascript
JS清除IE浏览器缓存的方法
2013/07/26 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
原生JS实现垂直手风琴效果
2017/02/19 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
2017/09/20 jQuery
微信小程序实现留言板
2018/10/31 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
Python 的描述符 descriptor详解
2016/02/27 Python
详解Python中的from..import绝对导入语句
2016/06/21 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
2019/03/20 Python
pymysql的简单封装代码实例
2020/01/08 Python
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
二年级数学教学反思
2014/01/21 职场文书
政府绩效管理实施方案
2014/05/04 职场文书
国际商务专业求职信
2014/07/15 职场文书
PHP实现rar解压读取扩展包小结
2021/06/03 PHP
雄兵连:第三季先行图公开,天使恶魔联合,银河之力的新力量
2021/06/11 国漫
Python 读取千万级数据自动写入 MySQL 数据库
2022/06/28 Python