Vue中引用assets中的图片的几种方式

本文探讨了如何使用HTML img标签引入图片作为视觉焦点,以及通过CSS的background-image属性将其用作网页背景。这两种技术展示了在前端开发中利用基础元素创造视觉效果的方法。

作为img标签引进来

 <img class="img"  alt="example" :src="require('./../assets/image/applicationOne.png')">

作为背景图片引入

<span  :style="'background-image:url('+require('./../assets/image/gotoSystemTwo.png')+')'" ></span>
Vue 3中引用img图片有以下几种方法: ### 使用 `require` 在 `data` 里定义变量引用图片 在 `data` 里定义变量,其值为 `require` 加上图片从 `src` 下开始的路径。示例代码如下: ```vue <template> <div> <img class="acc" :src="test1" > </div> </template> <script> export default { data() { return { test1: require('../assets/img/logos.png'), } } } </script> ``` 这种方式适用于在Vue 3项目中静态引用图片 [^1]。 ### 使用 `ref` 动态更换图片 利用Vue的 `ref` 来动态地在 `<script setup>` 中更换图片。示例代码如下: ```vue <template> <img :src="imageSrc" alt="Dynamic Image"> <button @click="changeImage">Change Image</button> </template> <script setup> import { ref } from 'vue'; const imageSrc = ref('./assets/logo.png'); function changeImage() { imageSrc.value = './assets/other-image.png'; } </script> ``` 此方法适合需要根据用户操作动态切换图片的场景 [^2]。 ### 定义方法获取图片URL 先定义一个方法 `getImgUrl` 来获取图片的URL。示例代码如下: ```javascript const getImgUrl = (fileName, baseUrl = "src/assets/imgs/home/", type = "png") => { return `/${baseUrl}${fileName}.${type}`; }; ``` 可以在需要引用图片的地方调用这个方法获取图片的URL [^3]。 ### 在接口返回函数处理中动态引入图片 在接口返回函数处理时,使用 `new URL(url, import.meta.url)` 来动态引入图片。示例代码如下: ```javascript dataALL.value.forEach((item) => { const urlImg = `../../../fylogo/${item.BM}.jpg` item.logo = new URL(urlImg, import.meta.url).href }) ``` 这种方式适用于根据接口返回的数据动态加载图片 [^4]。 ### 通过 `new URL(url, import.meta.url)` 动态设置URL `import.meta.url` 是一个 ESM 的原生功能,会暴露当前模块的 URL。将它与原生的 URL 构造器组合使用,在一个 JavaScript 模块中,通过相对路径就能得到一个被完整解析的静态资源 URL。示例代码如下: ```javascript const imgUrl = new URL('./assets/image.png', import.meta.url).href; ``` 这种方法在有很多判断的时候,相比使用 `import` 结合 `switch...case` 判断更高效,适合动态设置图片URL的场景 [^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值