Vue一次性简洁明了引入所有公共组件的方法


Posted in Javascript onNovember 28, 2018

使用场景

-在开发过程中,往往会有很多自己定义公用组件,我们通过import 导入,components挂载到实例上就行,项目刚开始还好,但是随着项目迭代,组件越来越多,同一个组件不同的方式用需要重复导入挂载,就显得冗余

这里是通过require.context的一种便捷操作

实例

文件结构

Vue一次性简洁明了引入所有公共组件的方法

component/modal里存放的是我们定义的公共DOM组件

// 导入Vue, 需要使用Vue.component()方法注册组件
import Vue from 'vue'

// let f = r => {
//  return r.keys().map(key => r(key));
// }
//
// console.log(f(require.context('./modal', true, /\.vue/)));

// 将 ./modal 下的所有组件全部读取出来
//
//
// requireComponents: ƒ webpackContext(req) {
//   return __webpack_require__(webpackContextResolve(req));
// }

/**
 * @var requireComponents -- requireComponents保存每个文件的相对路径的集合,可通过keys()返回
 * @function requireComponents -- 也是个方法,传入keys()枚举出来的路径可返回组件实例
 */

const requireComponents = require.context('./', true, /\.vue/);
// 打印结果
// requireComponents: ƒ webpackContext(req) {
//   return __webpack_require__(webpackContextResolve(req));
// }
//

// 遍历出每个组件的路径
requireComponents.keys().forEach(fileName => {
 // 组件实例
 const reqCom = requireComponents(fileName)
 // 截取路径作为组件名
 const reqComName = fileName.split('/')[1]
 // 组件挂载
 Vue.component(reqComName, reqCom.default || reqCom)
})

具体的只要打印出来就一目了然,这里不做赘述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery 1.42 checkbox 全选和反选代码
Mar 27 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
Jul 22 Javascript
node.js中的buffer.fill方法使用说明
Dec 14 Javascript
jQuery中:disabled选择器用法实例
Jan 04 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
Sep 14 Javascript
Javascript动画效果(3)
Oct 11 Javascript
Vue+element-ui 实现表格的分页功能示例
Aug 18 Javascript
React Native开发封装Toast与加载Loading组件示例
Sep 08 Javascript
在vue-cli的组件模板里使用font-awesome的两种方法
Sep 28 Javascript
Javascript读取上传文件内容/类型/字节数
Apr 30 Javascript
vue实现自定义H5视频播放器的方法步骤
Jul 01 Javascript
layer 刷新某个页面的实现方法
Sep 05 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
Nov 28 #Javascript
微信小程序仿知乎实现评论留言功能
Nov 28 #Javascript
微信小程序实现评论功能
Nov 28 #Javascript
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
Nov 28 #Javascript
小程序点击图片实现自动播放视频
May 29 #Javascript
django使用channels2.x实现实时通讯
Nov 28 #Javascript
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
Nov 28 #Javascript
You might like
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
php中namespace use用法实例分析
2016/01/22 PHP
用jquery设置按钮的disabled属性的实现代码
2010/11/28 Javascript
javascript针对DOM的应用分析(二)
2012/04/15 Javascript
利用函数的惰性载入提高javascript代码执行效率
2014/05/05 Javascript
js实现鼠标悬浮给图片加边框的方法
2015/01/30 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
js生成随机颜色方法代码分享(三种)
2016/12/29 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
[04:41]2014DOTA2国际邀请赛 Liquid顺利突围晋级正赛
2014/07/09 DOTA
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
2016/09/19 Python
python3 模拟登录v2ex实例讲解
2017/07/13 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
Django如何实现密码错误报错提醒
2020/09/04 Python
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
vue路由实现登录拦截
2021/03/24 Vue.js
工程管理英文求职信
2014/03/18 职场文书
班级寄语大全
2014/04/10 职场文书
财会专业大学生求职信
2014/09/26 职场文书
2014年音乐教师工作总结
2014/12/03 职场文书
2014年学校体育工作总结
2014/12/08 职场文书
学生检讨书怎么写
2015/05/07 职场文书
获奖感言怎么写
2015/07/31 职场文书
停车场管理制度范本
2015/08/05 职场文书
python 如何执行控制台命令与操作剪切板
2021/05/20 Python
Python合并多张图片成PDF
2021/06/09 Python
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS