关于vue项目中动态引入图片作为背景图遇到的问题

vue项目中如果需要动态的引入图片作为背景图

vue2项目

图片资源已知,在指定条件下渲染出来。可以使用import或者require

// html部分
<div class="icon" :style="{background: 'url('+imgSrc+')', backgroundSize: '100% 100%'}"></div>// js部分
import getImgSrc from "./../../assets/svg/icon-qing.svg";data() {return {imgSrc: ''}
}mounted() {if(指定条件) {this.imgSrc = getImgSrc}
}
vue3+vite项目

在vue3+vite项目中发现,不能使用require,这是因为在vue3中是通过vite进行打包编译的,而require是webpack中函数,所以在vue3中不能用,而vite官网给出了替代方法new URL

const imgUrl = new URL('./img.png', import.meta.url).href
document.getElementById('hero-img').src = imgUrl

import.meta.url 是一个 ESM 的原生功能,会暴露当前模块的 URL。
但是本人使用new URL时URL也报错了,暂未找到原因,没办法就改用import引入

在vue2或者vue3项目中,都可以使用import来引入图片资源,vue3中使用import引入和上述vue2中一样,不在详述,此处特别说明一种情况,比如,对于需要引入哪个图片,图片名称还未定,需要调接口后才能知道图片名称,此时使用import就不合适了,此时可以使用import()来实现,此处拿获取高德地图的天气信息为例,代码如下:

// html部分
<div class="icon" :style="{background: 'url('+imgSrc+')', backgroundSize: '100% 100%'}"></div>
<script setup>import {ref, watch, reactive, onMounted, computed, onBeforeMount, onUnmounted} from 'vue';import weathJson from './../../utils/weath.json';// weath.json为天气状态和需要渲染的图片名称的映射集合
const weatherImg = ref('');const GetLocation = () => {axios({url: 'https://restapi.amap.com/v3/ip',method: 'post',params: {key: '高德的key'},}).then((res)=> {getWeathData(res.data.city, res.data.adcode)}).catch();
} 
const getWeathData = (cityName, cityCode) => {axios({url: "https://restapi.amap.com/v3/weather/weatherInfo",method: "GET",params: {key: "高德的key",city: cityCode,extensions: 'base',output: "JSON"},}).then(function (resp) {let newData = resp.data.lives[0];weatherData.value = newData;if(weathJson[newData.weather]) {import(`./../../assets/svg/${weathJson[newData.weather]}.svg`).then(res => {weatherImg.value = res.default})}})}onMounted(() => {GetLocation()
})
</script>

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

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

相关文章

【Python探索之旅】初识Python

目录 发展史&#xff1a; 环境安装&#xff1a; 入门案例&#xff1a; 变量类型 标准数据类型 数字类型&#xff1a; 字符串&#xff1a; 全篇总结&#xff1a; 前言&#xff1a; Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设…

GEE数据集——东南亚区域油棕种种植分布(油棕榈树种植园的概率)数据集

森林数据伙伴关系围绕对全球商品驱动的森林砍伐、森林退化和恢复工作的全球监测&#xff0c;加强合作与应用。 世界各国政府和公司都承诺帮助制止砍伐森林和加快恢复&#xff0c;以避免气候变化带来的最坏影响&#xff0c;防止生物多样性丧失&#xff0c;保护森林对人类和自然…

TriCore:Interrupt 2

今天继续来看看 IR 模块。 名词缩写 缩写全称说明IRInterrupt Router SRService Request 包括&#xff1a; 1. External Resource 2. Internal Resource 3.SW&#xff08;Software&#xff09; SPService Privoder 包括&#xff1a; 1. CPU 2. DMA SRNService Request NodeS…

给第一次接触产品设计的写的

设计概念 设计原则 你可以参考以下的原则在每次评估一个网站时&#xff0c;建立excel&#xff0c;包含两个表格 表格1&#xff1a; 启发式评估 评估人员姓名 设备/浏览器/OS 网站URL 日期容易修复度 (ER) E0.修复需要最大的努力 E1.修复需要相当大的努力 E2.修复需要一些努…

FPGA+HDMI转换方案,用于网络直播切换直播画面,客户应用:直播,自媒体

FPGAHDMI转换方案&#xff0c;用于网络直播切换直播画面 客户应用:直播&#xff0c;自媒体 主要功能: 1.支持多路HDMI高清输入/输出 2.支持各路输入输出灵活切换 3.支持USB接口 4.支持网口 5.支持音频输出接口 6.支持serders

PHP单独项目启动演示

文章目录 phpstudy得到文件打开phpStudy.exe运行项目 Apache运行后又自动停止 phpstudy 得到文件 一般我们会得到这么一个项目文件&#xff0c;如果外层有“中文路径”&#xff0c;请剪切此内容作为项目根目录即可 打开phpStudy.exe 因为我又正常的编程环境和mysql&#x…

霍金《时间简史 A Brief History of Time》书后索引(I--L)

A–D部分见&#xff1a;霍金《时间简史 A Brief History of Time》书后索引&#xff08;A–D&#xff09; E–H部分见&#xff1a;霍金《时间简史 A Brief History of Time》书后索引&#xff08;E–H&#xff09; 图源&#xff1a;Wikipedia INDEX I Imaginary numbers Ima…

【C++要哮着学】初识C++,什么是C++?什么是命名空间?什么又是缺省函数?

文章目录 前言1、C简介1.1、什么是C1.2、C起源1.3、C发展 2、C关键字&#xff08;C98&#xff09;3、命名空间3.1、命名空间的定义及使用3.2、命名空间的嵌套3.3、命名空间的三种使用方式3.3.1、加命名空间名称及作用域限定符3.3.2、使用using将命名空间中某个成员引入3.3.3、使…

大舍传媒教你海外媒体广告投放的3个细分人群,“无需担忧!”

细分人群的重要性 在海外进行媒体广告投放时&#xff0c;理解和准确定位目标受众群体至关重要。细分人群可以帮助我们更好地了解他们的需求、兴趣和行为习惯&#xff0c;从而有效提升广告传播效果。本文将介绍大舍传媒推荐的三个海外细分人群&#xff0c;并为您提供解决方案&am…

Today At Apple 2024.05.12 上海静安 制作属于自己的表情符号

官网&#xff1a; https://www.apple.com/today/Apple 亚洲第一大商店&#xff1a;Apple 静安零售店现已在上海开幕如下预约课程&#xff1a;下载 Apple Store&#xff08;不是app store&#xff09;&#xff0c;点击课程预约笔记&#xff1a;Today At Apple Notes果粉加群 &am…

【前端开发】Uniapp:路由拦截器配置

路由拦截器 创建拦截器配置文件&#xff1a;permission.js // 获取登录token值 import { getToken } from /utils/auth// 登录页面 const loginPage "/pages/login"// 页面白名单 const whiteList [/pages/login,/pages/register,/pages/common/webview/index ]/…

【Web后端】Tomcat简介_安装_解决乱码_idea配置

1.1 简介 tomcat是在oracle公司的ISWDK(lavaServer Web DelevopmentKit)的基础上发展起来的一个优秀的开源的servlet容器tomcat使用java语言编写。运行稳定、可靠、效率高&#xff0c;可以和目前 主流web服务器一起工作(如IIS、Apache、 Nginx)tomcat是Apache软件基金会(Apach…

Today At Apple 2024.04.22 Iphone 入门 Mac 办公高4个效技巧

官网&#xff1a; https://www.apple.com/today/Apple 亚洲第一大商店&#xff1a;Apple 静安零售店现已在上海开幕如下预约课程&#xff1a;下载 Apple Store&#xff08;不是app store&#xff09;&#xff0c;点击课程预约笔记&#xff1a;Today At Apple Notes果粉加群 &am…

软件测试面试题100题

一、测试理论 3.1 你们原来项目的测试流程是怎么样的? 我们的测试流程主要有三个阶段&#xff1a;需求了解分析、测试准备、测试执行。 1、需求了解分析阶段 我们的 SE 会把需求文档给我们自己先去了解一到两天这样&#xff0c;之后我们会有一个需求澄清会议&#xff0c; …

总结相关连接

1.anaconda 下载 Index of / 2.pytorch version 对应关系 Previous PyTorch Versions | PyTorch

微信小程序之转盘抽奖

1. 实现效果 2. 实现过程 话不多说&#xff0c;直接上代码 /**index.wxml */ <view class"title">旋转大转盘</view> <view class"rote-box fcc"><view class"box fcc"><image class"bg" src"/stat…

cookie、session、token、表单、json、jsonp、websocket、ajax都是什么

前后端数据交互的几种方式 1.cookie Cookie是服务器保存在客户端的一小段数据&#xff0c;&#xff08;使用Cookie的前提是客户端浏览器允许使用Cookie并对此做出相应的设置。&#xff09; cookie是一种存储在用户计算机上的小型数据文件&#xff0c;常用于在web应用程序中跟…

SpringCloud2024最新版链路追踪教程micrometer+zipkin

本文基于B站尚硅谷2024版springcloud教学视频&#xff0c;主要用于自己学习记录以及分享技术&#xff0c;侵权私删 自己本机环境信息&#xff1a; jdk&#xff1a;17.0.10springboot&#xff1a;3.2.0springcloud&#xff1a;2023.0.0 micrometer 之前行业内使用的分布式链路…

宝塔面板Docker+Uwsgi+Nginx+SSL部署Django项目

这次为大家带来的是从零开始搭建一个django项目并将它部署到linux服务器上。大家可以按照我的步骤一步步操作&#xff0c;最终可以完成部署。 步骤1&#xff1a;在某个文件夹中创建一个django项目 安装django pip install django创建一个django项目将其命名为djangoProject …

翻译prompt

参考链接https://baoyu.io/blog/prompt-engineering/three-ai-agents-and-four-steps-flow-prompt 现在你要帮忙解释一篇专业的技术文章成简体中文给大学生阅读。规则&#xff1a; - 翻译时要准确传达学术论文的事实和背景&#xff0c;同时风格上保持为通俗易懂并且严谨的科普…