位置: IT常识 - 正文

require.context()的用法详解

编辑:rootadmin
require.context()的用法详解 require.context()的用法详解🌴require.context()的介绍🌺用法一:在组件内引入多个组件🌼用法二:在main.js中引入大量公共组件🍂用法三:使用插件注册全局组件🌵用法四:引入vuex的module🌳用法五:引入项目中所有的svg文件

推荐整理分享require.context()的用法详解,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

欢迎加入前端学习交流群692081881

🌴require.context()的介绍

我们可以在控制台中打印require,可见require其实就是就是一个函数 我们可以打印require.prototype,查看他身上都有什么方法,都要传入哪些参数

console.log(require.prototype);

require.context参数介绍 require.context(directory,useSubdirectories,regExp)

directory:表示检索的目录useSubdirectories:表示是否检索子文件夹regExp:匹配文件的正则表达式,一般是文件名

例如 require.context(“@/views/components”,false,/.vue$/)

🌺用法一:在组件内引入多个组件

核心代码如下

const path = require("path")const files = require.context("@/views/00-99/requireContext/components", false, /\.vue$/)const modules = {}files.keys().forEach((key) => { const name = path.basename(key, ".vue") modules[name] = files(key).default || files(key)})console.log(modules)export default { components: modules,}require.context()的用法详解

案例如下: 代码目录结如下(这个看起来可能比较乱,先将就一下吧): 有两个将会被用到的组件:

我们主要关注requireContext文件夹里面的内容即可 比如说现在有十好几个组件在components文件夹里,这些组件将要被引入02.vue中进行使用,我们不想使用import一个一个的进行引入,那么这个时候就可以使用require.context了, 代码如下:

index.js(这里指的是requireContext目录下的index.js)

const path = require("path")const files = require.context("@/views/00-99/requireContext/components", false, /\.vue$/)const modules = {}files.keys().forEach((key) => { const name = path.basename(key, ".vue") modules[name] = files(key).default || files(key)})console.log(modules)export default { components: modules,}

02.vue

<template> <div> <COMA /> <COMB /> </div></template><script>import mycomponents from "./index"console.log(mycomponents)export default { components: { COMA: mycomponents.components.zujianA, COMB: mycomponents.components.zujianB, },}</script><style></style>

最终的效果如下;

🌼用法二:在main.js中引入大量公共组件

下面的代码都是在main.js,也就是项目的入口文件中写的,在这个地方将组件进行一次性的全局注册,这么多的代码写在main.js中可能显得比较累赘,我们也可以使用方法三(Vue插件),使得代码看起来比较简介一些。

import Vue from 'vue'// 自定义组件const requireComponents = require.context('../views/components', true, /\.vue/)// 打印结果// 遍历出每个组件的路径requireComponents.keys().forEach(fileName => { // 组件实例 const reqCom = requireComponents(fileName) // 截取路径作为组件名 const reqComName =reqCom.name|| fileName.replace(/\.\/(.*)\.vue/,'$1') // 组件挂载 Vue.component(reqComName, reqCom.default || reqCom)})🍂用法三:使用插件注册全局组件

我们可以新建一个js文件,使用插件的方式进行一次性的全局注册

/* 所有在./components目录下的.vue组件自动注册为全局组件 以<mc-***></mc-***>为组件标签名,***是组件的.name*/const requireContext = require.context('../components', true, /\.vue$/)const requireAll = context => context.keys().map(context)console.log(requireContext)console.log(requireAll(requireContext))export default (Vue) => { requireAll(requireContext).forEach(item => { Vue.component(`vc-${item.default.name}`, item.default) })}🌵用法四:引入vuex的module

app.js与user.js是两个模块,将来都需要被引入到index.js中进行使用 index.js代码(modules目录下的)

import Vue from "vue"import Vuex from "vuex"// 省去了一大堆的import// import app from "./modules/app"// import user from "./modules/user"import getters from "./getters"Vue.use(Vuex)const files = require.context("./modules", false, /\.js$/)console.log("------------")console.log(files.keys())console.log("------------")const modules = {}files.keys().forEach((key) => { modules[key.replace(/(\.\/|\.js)/g, "")] = files(key).default})console.log("------------")console.log(modules)console.log("------------")export default new Vuex.Store({ // 省去了手动注册 // modules: { // app, // user, // }, modules: { ...modules }, getters,})

🌳用法五:引入项目中所有的svg文件const requireContext = require.context('./svg', false, /\.svg/)const requireAll = context => context.keys().map(context)requireAll(requireContext)

#🌼 用法六:利用require.context遍历目录所有的图片

<template> <div id="app"> <li v-for="(img, index) in images" :key="index"> <p>img: {{ img }}</p> <img :src="imgUrl(img)" alt="" /> </li> </div></template><script>const req = require.context("@/assets/images", false, /(\.jpg|\.gif)$/)export default { name: "App", data() { return { images: [], } }, created() { this.images = req.keys() }, methods: { imgUrl(path) { return req(path) }, },}</script><style>img { height: 30px;}</style>

本文链接地址:https://www.jiuchutong.com/zhishi/296027.html 转载请保留说明!

上一篇:html/javascript实现简单的上传(html+javascript)

下一篇:情感计算——多模态情感识别(情感计算的应用)

  • 苹果13有前置呼吸灯吗(苹果13有前置呼叫吗)

    苹果13有前置呼吸灯吗(苹果13有前置呼叫吗)

  • 淘宝零钱怎么充值(淘宝怎么充钱进去)

    淘宝零钱怎么充值(淘宝怎么充钱进去)

  • 支付宝怎么代付(支付宝怎么代付款)

    支付宝怎么代付(支付宝怎么代付款)

  • 苹果12Pro都有什么颜色的(苹果12pro都有什么内存)

    苹果12Pro都有什么颜色的(苹果12pro都有什么内存)

  • 如何去掉文档空白页(如何去掉文档空白页word)

    如何去掉文档空白页(如何去掉文档空白页word)

  • 小米2015052什么型号(小米2015201)

    小米2015052什么型号(小米2015201)

  • 小米手机信号差是手机问题还是卡的问题(小米手机信号差你只是没打开这个选项)

    小米手机信号差是手机问题还是卡的问题(小米手机信号差你只是没打开这个选项)

  • 光纤灯红色闪烁怎么解决(光纤灯红色闪烁是什么原因)

    光纤灯红色闪烁怎么解决(光纤灯红色闪烁是什么原因)

  • 光纤单模和双模的区分(光纤单模和双模可以混用吗)

    光纤单模和双模的区分(光纤单模和双模可以混用吗)

  • 华为平板总是黑屏怎么回事(华为平板总是黑屏怎么办)

    华为平板总是黑屏怎么回事(华为平板总是黑屏怎么办)

  • 钉钉怎么退群(钉钉怎么退群主)

    钉钉怎么退群(钉钉怎么退群主)

  • ipadwlan是什么版本(苹果平板ipadwlan版是什么意思)

    ipadwlan是什么版本(苹果平板ipadwlan版是什么意思)

  • 苹果平板充不进电怎么回事开不了机(苹果平板充不进去电怎么回事)

    苹果平板充不进电怎么回事开不了机(苹果平板充不进去电怎么回事)

  • 为什么手机屏显示HD(为什么手机屏显示不完全)

    为什么手机屏显示HD(为什么手机屏显示不完全)

  • 华为悬浮球怎么关(华为悬浮球怎么设置关闭)

    华为悬浮球怎么关(华为悬浮球怎么设置关闭)

  • 华为怎么看软件使用时间(华为怎么看软件在哪个文件夹)

    华为怎么看软件使用时间(华为怎么看软件在哪个文件夹)

  • 怎么下载当贝市场到电视(怎么下载当贝市场到u盘)

    怎么下载当贝市场到电视(怎么下载当贝市场到u盘)

  • 苹果11优化电池充电什么意思(苹果11优化电池在哪设置)

    苹果11优化电池充电什么意思(苹果11优化电池在哪设置)

  • 水印相机怎么拼图片(水印相机怎么拼图九张)

    水印相机怎么拼图片(水印相机怎么拼图九张)

  • word2019参考文献怎么标注(world 参考文献)

    word2019参考文献怎么标注(world 参考文献)

  • 腾讯110能退钱吗(腾讯110能把钱追回吗300块钱)

    腾讯110能退钱吗(腾讯110能把钱追回吗300块钱)

  • 怎么查欠费的手机号码(怎么查欠费的手机号欠了多少钱)

    怎么查欠费的手机号码(怎么查欠费的手机号欠了多少钱)

  • 手机视频怎么合成(手机视频怎么合成到一起的)

    手机视频怎么合成(手机视频怎么合成到一起的)

  • 华为荣耀10有没有红外线(华为荣耀10有没有OTG)

    华为荣耀10有没有红外线(华为荣耀10有没有OTG)

  • 8个月前通话记录怎么查(8年前的通话记录)

    8个月前通话记录怎么查(8年前的通话记录)

  • 揭谜一键Ghost的“恶”事 大白菜、老毛桃、通用都不干净(一键ghost软件怎么用)

    揭谜一键Ghost的“恶”事 大白菜、老毛桃、通用都不干净(一键ghost软件怎么用)

  • 基于微信小程序的电影订票系统设计与实现(代码+数据库+论文)(基于微信小程序制作)

    基于微信小程序的电影订票系统设计与实现(代码+数据库+论文)(基于微信小程序制作)

  • 文化传媒公司的税种及税率
  • 支付城镇土地使用税会计科目
  • 国库券利息收入计入利润总额吗
  • 未认证待抵扣进项税重分类
  • 甲方给的工程奖项有哪些
  • 电商平台返佣金税务怎么走
  • 增值税零申报触发附加税零申报
  • 工商年报本期社保怎么填
  • 企业改制重组增值税优惠政策
  • 哪些单位和个人可构成全宗
  • 电子设备税费
  • 商贸公司批发零食怎么样
  • 免税货物开成含税率的怎么报税?
  • 资产减值损失是
  • 进货费用会计科目
  • 已经在网上申报学校可以改学校吗
  • 小微企业免税销售额填含税还是不含税
  • 农业生产免税政策
  • 专票开户行信息少股份有限公司有影响吗?
  • 不符合规定(未带编码或编码选择错误)的发票,纳税人该怎么做?
  • 不容忽视的近义词
  • 小型微利企业所得税优惠政策2023超过100万
  • 收到个税手续费返还现金流量表
  • 高速支付宝支付如何开发票
  • 月末结转增值税凭证
  • 分包开普通发票还是增值税专用发票?
  • 工程用的叉车计提折旧记到什么科目?
  • windows10显示未激活怎么办
  • 12306打不开怎么回事苹果手机
  • 对公账户被诈骗转款728000会怎么样呢
  • 奖金扣税标准税率表
  • 呆账催讨原则是谁提出的
  • 继承和赠与算夫妻共同财产吗
  • linux swap 0
  • scm wms
  • 企业注销后账上有结余怎么办
  • linux块设备驱动详解
  • laravel url重写
  • php 截断
  • api接口长什么样
  • 如何用php
  • php无限分类实现不实用递归
  • python数学建模资料
  • 员工工资属于什么会计科目
  • redishi
  • 转入固定资产清理会计科目
  • 认缴出资额就是营业执照上的注册资金
  • 对公账户余额和可用余额不一样
  • 小规模纳税人补开发票如何申报
  • 房地产企业怎么预缴企业所得税
  • 补偿性余额实际利率计算公式
  • 企业用支付宝
  • 小规模纳税人差旅费可以抵扣吗
  • 挂靠公司收的税费计入什么科目?
  • 人力资源劳务费计入什么科目
  • 没有付款的费用怎么入账
  • 外购货物分配给股东
  • 辞退补偿金入什么科目
  • 签劳动合同的员工有哪些
  • sql解析框架
  • Win9传闻汇总:通知中心+免费下载+手势功能等
  • win10 mobile 预览10240
  • rsrcmtr.exe - rsrcmtr是什么进程 有什么用
  • windows7搭建ftp
  • win7怎么设置u盘启动为第一启动项
  • cocos2dx-js
  • Android游戏开发实践指南
  • python火车订票系统
  • jquery1.8
  • node.js介绍
  • android调用相机闪退
  • 正则表达式/a/g
  • python3整除
  • javascript面向对象精要pdf下载
  • jQuery插件AjaxFileUpload实现ajax文件上传
  • 浅谈如何实现乡村振兴论文
  • javascript程序设计教程
  • 摩托车的消费税率
  • 湖北省叉车考试题库
  • 租房协议中怎样签字
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设