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自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 Vue.js
在vue中动态修改css其中一个属性值操作
Dec 07 Vue.js
vue 使用class创建和清除水印的示例代码
Dec 25 Vue.js
浅析vue中的nextTick
Dec 28 Vue.js
如何在Vue项目中添加接口监听遮罩
Jan 25 Vue.js
vue-video-player 断点续播的实现
Feb 01 Vue.js
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
Feb 20 Vue.js
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
May 25 Vue.js
vue 实现上传组件
May 31 Vue.js
Vue elementUI表单嵌套表格并对每行进行校验详解
Feb 18 Vue.js
vue3不同环境下实现配置代理
May 25 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线性表的入栈与出栈实例分析
2015/06/12 PHP
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
详细解读PHP中接口的应用
2015/08/12 PHP
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
用nodejs写的一个简单项目打包工具
2013/05/11 NodeJs
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
在Node.js中实现文件复制的方法和实例
2014/06/05 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
2015/06/19 Javascript
location.hash保存页面状态的技巧
2016/04/28 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
微信小程序 五星评价功能的实现
2017/03/09 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
Angular.js前台传list数组由后台spring MVC接收数组示例代码
2017/07/31 Javascript
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
详解js中的几种常用设计模式
2020/07/16 Javascript
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
Windows系统下多版本pip的共存问题详解
2017/10/10 Python
用python制作游戏外挂
2018/01/04 Python
基于Python 装饰器装饰类中的方法实例
2018/04/21 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
解决django接口无法通过ip进行访问的问题
2020/03/27 Python
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
游戏商店:Eneba
2020/04/25 全球购物
幼儿园老师辞职信
2014/01/20 职场文书
项目建议书格式
2014/03/12 职场文书
买房委托公证书
2014/04/08 职场文书
安全责任协议书
2014/04/21 职场文书
感恩母亲节演讲稿
2014/05/07 职场文书
财务整改报告范文
2014/11/05 职场文书
投标单位介绍信
2015/05/05 职场文书
2015教师节通讯稿
2015/07/20 职场文书
idea编译器vue缩进报错问题场景分析
2021/07/04 Vue.js