require.context()用法详解

这篇具有很好参考价值的文章主要介绍了require.context()用法详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

require.context() 是 Webpack 提供的 API,用于在运行时动态地导入模块,在 Vue.js 项目中常用于自动注册路由、组件等功能。


一、require.context(directory,useSubdirectories,regExp)使用

参数

const routeFiles = require.context(‘…/router/main’, true, /.ts/)

上述代码表示在 ../router/main目录中(相对于当前文件所在的目录),递归地寻找所有以 .ts 结尾的文件,并返回一个函数。返回的函数有三个属性。

  • directory:导入文件路径
  • useSubdirectories:是否递归
  • regExp:正则表达式

属性

  • keys():返回匹配的文件路径列表。

  • resolve():返回匹配的模块绝对路径。

  • Context(key: String):返回对应路径的模块的默认导出。

二、使用

代码如下(示例):

import Vue from 'vue';
import VueRouter from 'vue-router';

Vue.use(VueRouter);

const routes = [];
const files = require.context('../router/main', true, /\.ts/);

files.keys().forEach(key => {
  const fileName = key.replace(/(.*\/)*([^.]+).*/gi, "$2"); // 提取文件名
  if (fileName.toLowerCase() !== "index") { // 排除 index.ts
    const routeModule = files(key);
    routes.push(...routeModule.default); // 拼接路由到 routes 数组中
  }
});

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
});

export default router;

这个代码通过 require.context 加载 …/router/main 下所有以 .ts 结尾的文件,筛选出不是 index.ts 的文件,然后将这些文件中的路由添加到 routes 数组中,最后通过 VueRouter 的构造函数生成路由实例并导出。

这样我们只需要在 …/router/main 目录下添加新的路由文件,在项目启动时,Webpack 就会自动将这些路由注册到路由表中。文章来源地址https://www.toymoban.com/news/detail-492934.html

到了这里,关于require.context()用法详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Go语言中sync.Map、sync.Pool和Context的用法

    Go语言中sync.Map、sync.Pool和Context的用法

    目录 【sync.Map】 实现线程安全的 map 类型  使用 sync.Map 实现并发读写的map 【sync.Pool】 使用 带缓冲channel 实现对象池 使用 sync.Pool 创建临时对象池 【Context 上下文】 Context应用:实现带超时功能的远程调用 Context应用:监控指令  Context应用:取消关联任务 之前在 Go语言中ar

    2024年02月05日
    浏览(8)
  • Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag

    Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag

    最近在做一个人脸识别相关的项目,调用context.startActivity(intent)方法,报错如下: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? 分析:Activity继承自Context,查看Context.startActivity(Intent, Bundle),下

    2024年02月15日
    浏览(13)
  • solidity的require用法

    require  函数用于确认条件有效性,例如输入变量,或合约状态变量是否满足条件,或验证外部合约调用返回的值 有两个参数:         第一个参数为条件判断表达式,必选         第二个参数为要返回的异常消息提醒,可选 如下面例子:   require(msg.value % 2 == 0\\\"); 不带第二

    2024年02月11日
    浏览(11)
  • 前端Vue中import和require的用法分析

    在前端开发中,使用Vue框架进行项目开发是非常常见的。在Vue项目中,我们经常需要引入外部的模块或文件,这时候就会用到 import 和 require 这两个。本文将详细分析它们的用法,并提供具体的代码实例和解释。 在ES6中, import 是一种用于导入模块的语法。它可以帮助

    2024年02月11日
    浏览(12)
  • 【ES6】require、export和import的用法

    【ES6】require、export和import的用法

    在JavaScript中,require、export和import是Node.js的模块系统中的,用于处理模块间的依赖关系。 1、require:这是Node.js中引入模块的方法。当你需要使用其他模块提供的功能时,可以使用require来引入该模块。例如: common.js 运行 node .demo.js ,输出: 在上面的代码中,我

    2024年02月10日
    浏览(15)
  • 【c语言】详解c语言#预处理期过程 | 宏定义前言

    【c语言】详解c语言#预处理期过程 | 宏定义前言

    c语言系列专栏: c语言之路重点知识整合   创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡𖥦)!!  主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ 代码编译到执

    2024年02月01日
    浏览(15)
  • golang中context详解

    编码中遇到上下文信息传递,并发信息取消等,记录下在go语言中context包的使用。 在Go语言中,context包提供了一种在程序中传递截止日期、取消信号、请求范围数据和其他元数据的方式。context包的核心类型是Context接口,它定义了在执行上下文中传递的方法。Context接口的主要

    2024年01月21日
    浏览(11)
  • Golang中context包基础知识详解

    目录 什么是context.Context? 如何构造context.Context对象? 衍生Context方法 使用context包需要注意的点 context.Context是Golang标准库提供的接口(context包对此接口有多种实现),该接口提供了四个抽象法: Deadline方法,返回context.Context被取消的时间点,也就是需要完成任务的截止时间

    2024年02月02日
    浏览(7)
  • [元带你学: eMMC协议 31] eMMC Context(上下文) ID 详解 | eMMC 并行数据标识与隔离详解

    [元带你学: eMMC协议 31] eMMC Context(上下文) ID 详解 | eMMC 并行数据标识与隔离详解

    依JEDEC eMMC及经验辛苦整理,原创保护,禁止转载。 专栏 《元带你学:eMMC协议》 内容摘要 全文 5000 字, 主要内容 eMMC 为什么要引入 Context? Context 是什么? 如何使用Context 上下文? Context 上下文配置怎么做? 上下文 ID 应用局限 系统层和芯片组对 Context ID 支持情况 应用层软

    2024年02月11日
    浏览(53)
  • Django的render()函数的三个主要参数详解,特别是第三个字典类型的参数context

    当在Django中使用 render() 函数时,它有三个主要参数: request , template_name ,和 context 。第三个参数,即 context ,是一个字典,用于将数据传递给模板以进行渲染。 在下面的代码中: request : 这是视图函数接收到的用户请求对象,包含了用户的HTTP请求信息,例如请求方法、G

    2024年02月11日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包