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 相关文章推荐
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
基于vue与element实现创建试卷相关功能(实例代码)
Dec 07 Vue.js
vue添加自定义右键菜单的完整实例
Dec 08 Vue.js
详解Vue的异步更新实现原理
Dec 22 Vue.js
vue+element UI实现树形表格
Dec 29 Vue.js
Vue中强制组件重新渲染的正确方法
Jan 03 Vue.js
基于VUE实现简单的学生信息管理系统
Jan 13 Vue.js
vue 动态添加的路由页面刷新时失效的原因及解决方案
Feb 26 Vue.js
详解vue身份认证管理和租户管理
May 25 Vue.js
vue实力踩坑之push当前页无效
Apr 10 Vue.js
vue css 相对路径导入问题级踩坑记录
Jun 05 Vue.js
vue如何在data中引入图片的正确路径
Jun 05 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中include()与require()的区别说明
2010/03/10 PHP
让PHP支持断点续传的源码
2010/05/16 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
2014/02/13 Javascript
javascript学习笔记(六)数据类型和JSON格式
2014/10/08 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
NodeJS中Buffer模块详解
2015/01/07 NodeJs
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
JavaScript 事件入门知识
2015/04/13 Javascript
javascript实现的图片切割多块效果实例
2015/05/07 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
2015/12/02 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
遍历js中对象的属性和值的实例
2016/11/21 Javascript
jQuery实现的电子时钟效果完整示例
2018/04/28 jQuery
Angular6新特性之Angular Material
2018/12/28 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
创建nuxt.js项目流程图解
2020/03/13 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
2020/10/17 Javascript
python字符串加密解密的三种方法分享(base64 win32com)
2014/01/19 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
Golang与python线程详解及简单实例
2017/04/27 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
2018/01/30 Python
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
Python Json数据文件操作原理解析
2020/05/09 Python
总经理助理的八要求
2013/11/12 职场文书
《雷雨》教学反思
2014/02/20 职场文书
房屋委托书范本
2014/04/04 职场文书
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis