vue中的require

news2024/7/6 17:39:07

vue中的require

  • 一、基本概念
  • 二、具体演示
    • 1.引入json
    • 2.引入图片
  • 三、require.context
    • 引入图片:
    • 引入json
    • 引入模块js:
    • 引入vue文件:

一、基本概念

require 是 node 中的一个方法,他的作用是 用于引入模块、 JSON、或本地静态文件。require会在编译过程中被执行,最终会得到对应文件的内容(例如json文件)或者是文件编译后的目录路径(例如图片文件,当然如果图片大小小于一定值,会被直接转换为base64编码,具体配置参考vue-cli)。

二、具体演示

1.引入json

当我们想要在代码中使用本地json数据时,我们除了可以发起一个get请求外,我们还可以使用require直接引入:
在public文件中放入测试json a.json
在这里插入图片描述
引入json:

    const a = require('/public/a.json')
    console.log(a)

输出内容:
在这里插入图片描述

2.引入图片

同样的位置放入一张图片 logo.png(6KB)img.png(500KB)
在这里插入图片描述

引入图片:

const logo = require('/public/logo.png')
console.log(logo)
const img = require('/public/img.png')
console.log(img)

输出内容:
在这里插入图片描述
注意:vue项目里,在javascript中使用图片时,一定要用require引入,不然就会无法获取到图片
因为在js中直接使用字符串路径时,编译后也会使用当前字符串路径引入,而编译后的图片路径并不一定是图片存放的目录路径。而使用require引入时,就会获取到图片编译后的路径了。

三、require.context

require.context可以遍历文件夹的文件,从中获取指定文件,自动导入模块。

require.context(directory, useSubdirectories, regExp, mode = 'sync')

directory: 表示检索的目录
useSubdirectories:表示是否检索子文件夹
regExp: 匹配文件的正则表达式,一般是文件名
mode: 加载模式,“sync” | “eager” | “weak” | “lazy” | “lazy-once”

也就是说当文件夹中有多个文件时,我们可以一次性引入。

引入图片:

const imgFiles = require.context('/public', false, /.png$/)
imgFiles.keys().forEach((key) => {
  console.log(key, imgFiles(key))
})

在这里插入图片描述
.keys()获取引入的所有文件的key,content(key)获取引入文件的内容(路径或者base64)

引入json

const jsonFiles = require.context('/public', false, /.json$/)
jsonFiles.keys().forEach((key) => {
  console.log(key, jsonFiles(key)) // 旧的版本vue-cli可能需要 jsonFiles(key).default获取,请自行判断
})

在这里插入图片描述

引入模块js:

建立两个js文件
在这里插入图片描述
引入:

const jsFiles = require.context('/public', false, /.js$/)
jsFiles.keys().forEach((key) => {
  console.log(key, jsFiles(key))
})

在这里插入图片描述

引入vue文件:

我们可以用来批量注册全局组件
新建两个组件:
在这里插入图片描述
批量引入并注册:

app.use(store).use(router).mount('#app')
const comFiles = require.context('@/components', false, /.vue$/)
comFiles.keys().forEach((key) => {
  const reqCom = comFiles(key).default
  const comName = reqCom.name || key.replace(/\.\/(.*)\.vue/, '$1')
  console.log(key, reqCom)
  app.component(comName, reqCom)
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/816372.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快速开发框架若依的基础使用详解

Hi I’m Shendi 快速开发框架若依的基础使用详解 最近在为公司制作新的项目,经过了一段时间的技术沉淀,我开始尝试接触市面上用的比较多的快速开发框架,听的最多的当属若依吧 于是就选用了若依 介绍 为什么选?目的是为了提高开发…

【前端设计】尝试一文搞懂verilog parameter的全部细节

这里是尼德兰的喵芯片设计相关文章,欢迎您的访问! 如果文章对您有所帮助,期待您的点赞收藏! 让我们一起为成为芯片前端全栈工程师而努力! 一个参数的标准定义呢应该是这样的: parameter type range name …

SHELL——备份脚本

编写脚本,使用mysqldump实现分库分表备份。 1、获取分库备份的库名列表 [rootweb01 scripts]# mysql -uroot -p123456 -e "show databases;" | egrep -v "Database|information_schema|mysql|performance_schema|sys" mysql: [Warning] Using …

二十三种设计模式第十九篇--命令模式

命令模式是一种行为设计模式,它将请求封装成一个独立的对象,从而允许您以参数化的方式将客户端代码与具体实现解耦。在命令模式中,命令对象充当调用者和接收者之间的中介。这使您能够根据需要将请求排队、记录请求日志、撤销操作等。 命令模…

华为数通HCIP-IP组播基础

ospf、isis、BGP--ping通,单播路由--单播路由表; mpls--单播标签互通 点到多点业务流量下发 1、通过广播 一对所有发送; 缺陷:导致流量的有偿性、安全性得不到保障; 2、通过单播 一对一发送; 缺陷&…

嵌入式软件和硬件首先说一下怎么入门?

1,编程。这个你是否懂C语言编程,能够熟练或者熟悉使用C语言编写一段程序。不懂学习C语言。 2,单片机。你是否了解什么是单片机,单片机是做什么的。不懂的话,最好先了解一下什么是单片机,看下书&#xff0c…

万里腾飞终有路,国产替代正当时

2023年7月27-28日,I-CAR 2023 第六届细胞免疫疗法深度聚焦论坛在上海建工浦江皇冠假日酒店隆重举办,本次大会主要围绕实体瘤、质量控制&产业化、通用CAR-T疗法、免疫治疗新风口四大主题展开,就细胞免疫治疗快速发展崛起的同时&#xff0c…

openGauss学习笔记-26 openGauss 高级数据管理-约束

文章目录 openGauss学习笔记-26 openGauss 高级数据管理-约束26.1 NOT NULL约束26.2 UNIQUE约束26.3 PRIMARY KEY26.4 FOREIGN KEY26.5 CHECK约束 openGauss学习笔记-26 openGauss 高级数据管理-约束 约束子句用于声明约束,新行或者更新的行必须满足这些约束才能成…

ubuntu下,在vscode中使用platformio出现 Can not find working Python 3.6+ Interpreter的问题

有一段时间没有使用platformio了,今天突然使用的时候,发现用不了,报错: Ubuntu PlatformIO: Can not find working Python 3.6 Interpreter. Please install the latest Python 3 and restart VSCode。 上网一查,发现…

最全面的TCP、UDP、Socket、HTTP网络编程面试题

先看一天面试的经验: 第一场: 面试官:你说一下TCP的三次握手 我:第一次Client将SYN置1......、第二次Server收........、 第三次........ 面试官:很难背吧? 我:......是啊,很难&…

【编译】gcc make cmake Makefile CMakeList.txt 区别

文章目录 一 关系二 gcc2.1 编译过程2.2 编译参数2.3 静态库和动态库1 后缀名2 联系与区别 2.4 GDB 调试器1 常用命令 三 make、makefile四 cmake、cmakelist4.1 语法特性4.2 重要命令4.2 重要变量4.3 编译流程4.4 两种构建方式 五 Vscode5.0 常用快捷键5.1 界面5.2 插件5.3 .v…

程序的编译(3/13)

经过预处理后的源文件,褪去一切包装,注释被删除,预处理命令也基本上被处理掉,剩下的就是 C 代码了。接下来的第二步,就进入到编译阶段。编译阶段主要分为两步:第一步,编译器调用一系列解析工具分…

leetcode 面试题 08.05.递归乘法

⭐️ 题目描述 🌟 leetcode链接:面试题 08.05.递归乘法 思路: A 3 , B 4 ,3 * 4 等价于 3 3 3 3。 代码: int multiply(int A, int B){if (!B) {return 0;}return A multiply(A , B - 1); }

23款奔驰AMG GLE53加装原厂HUD抬头显示系统,增加您的行车安全

HUD是平视显示器的简称,它原先是运用在航空器上的飞行辅助仪器。指飞行员不需要低头,就能够看到他需要的重要资讯。由于HUD的方便性以及能够提高飞行安全,这项技术后来也发展到汽车行业。汽车搭载的HUD抬头数字显示功能,是利用光学…

Antd 日期范围选择框选择一个日期后,面板收起

需求 初始状态只有开始时间,如下图⬇️ 产品需要优化体验: 点击结束日期选择日期下拉面板直接收起,而不是需要选择起始时间 思路 需要一段逻辑的open属性控制后续操作还是由组件内部控制 逻辑 第一次打开,open控制选择了&am…

史上最全,商业智能BI干货满满

商业智能BI是什么? 商业智能BI可以实现业务流程和业务数据的规范化、流程化、标准化,打通ERP、OA、CRM等不同业务信息系统,商业智能BI整合归纳企业数据,商业智能BI利用数据可视化满足企业不同人群对数据查询、分析和探索的需求&a…

AOP自定义注解保存到MongoDB数据库

如果你想用mongoDB做全局日志记录,比如记录controller方法执行相关数据,比如像这样。 整个流程:先写自定义注解。定义一个日志对象,字段属性设置好。 写aop 规范自定义注解如何使用,在其中通过切点和反射把相关参数存到…

机器学习笔记之优化算法(五)线搜索方法(步长角度;非精确搜索;Armijo Condition)

机器学习笔记之优化算法——线搜索方法[步长角度,非精确搜索,Armijo Condition] 引言回顾:关于 f ( x k 1 ) ϕ ( α ) f(x_{k1}) \phi(\alpha) f(xk1​)ϕ(α)的一些特性非精确搜索近似求解最优步长的条件 Armijo Condition \text{Armijo…

行业追踪,2023-07-31,板块多数都是指向消费

自动复盘 2023-07-31 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…

【数据挖掘竞赛】——科大讯飞:锂离子电池生产参数调控及生产温度预测挑战赛

🤵‍♂️ 个人主页:@Lingxw_w的个人主页 ✍🏻作者简介:计算机科学与技术研究生在读 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ ​ 【科大讯飞】报名链接:https://challenge.xfyun.cn?invitaC…