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与element实现创建试卷相关功能(实例代码)
Dec 07 Vue.js
vue element el-transfer增加拖拽功能
Jan 15 Vue.js
vue实现按钮切换图片
Jan 20 Vue.js
vue使用过滤器格式化日期
Jan 20 Vue.js
Vue 3自定义指令开发的相关总结
Jan 29 Vue.js
Vue+Bootstrap实现简易学生管理系统
Feb 09 Vue.js
vue 实现上传组件
May 31 Vue.js
详解Vue slot插槽
Nov 20 Vue.js
vue 自定义组件添加原生事件
Apr 21 Vue.js
vue.js 使用原生js实现轮播图
Apr 26 Vue.js
vue递归实现树形组件
Jul 15 Vue.js
vue实现input输入模糊查询的三种方式
Aug 14 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文件下载类
2006/12/06 PHP
phpmyadmin MySQL 加密配置方法
2009/07/05 PHP
浅析PHP Socket技术
2013/08/02 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
基于prototype扩展的JavaScript常用函数库
2010/11/30 Javascript
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
Table冻结表头示例代码
2013/08/20 Javascript
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
在Node.js中使用HTTP上传文件的方法
2015/06/23 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
浅谈 Vue v-model指令的实现原理
2017/06/08 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
pyqt和pyside开发图形化界面
2014/01/22 Python
浅析Python数据处理
2018/05/02 Python
python实现读取excel文件中所有sheet操作示例
2019/08/09 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
2020/12/21 Python
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
软件测试企业面试试卷
2016/07/13 面试题
饮料业务员岗位职责
2013/12/15 职场文书
建筑工程专业学生的自我评价
2013/12/25 职场文书
入党积极分子思想汇报范文
2014/01/05 职场文书
校园公益广告语
2014/03/13 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
学生偷窃检讨书
2014/09/25 职场文书
导游欢送词
2015/01/31 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
教师教育教学随笔
2015/08/15 职场文书
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
2021/05/25 Python
AngularJS实现多级下拉框
2022/03/25 Javascript