“一个这么简单的东西你怎么写这么多v-if,明天别来上班了!”领导大叫着,一拳就把我鼻子打骨折了, 当时流眼泪了,捂着眼。
两分多钟以后,我说: “好的,那我后天再来”
代码如下:
使用require引入图片资源
本着打工人原则,我放弃了带薪休假的一天,这个地方必须优化,按照以前的思路使用require
<img :src="require(`../../../../assets/images/icon/ji0${item.user?.level}.png`)"/>
马老师,发生甚么事了,怎么报错了
require is not defined
发现是在vite中不能使用require引入图片资源,因为这里的require是webpack提供的一种加载能力,由于我们使用的是Vite,因此这里必须转用 Vite提供的静态资源载入到主角出场了。
Vite中静态资源处理
官方例:
const imgUrl = new URL('./img.png', import.meta.url).href
document.getElementById('hero-img').src = imgUrl
简单的说 new URL 一共接收两个参数,第一个参数即图片的路径,这里就是对应require中的值,第二个参数是vite的一个全局变量,可以理解成直接写死了 import.meta.url
于是又有了一种方法,如下:
<img :src="getVipUrl(item.user?.level)"/>
const getVipUrl = computed(() => (level:string):string => {
return new URL(`../../../../assets/images/icon/ji0${level}.png`, import.meta.url).href
})
我找到领导说优化完成了,明天不让我休息了吧。
‘给你机会你也不中用啊’ 领导继续大叫着。
我劝、这位领导耗子尾汁,好好反思,不要搞、窝~里斗!