vue img onerror事件及vite img src

vue img onerror事件

当图像的地址不能使用时,使用默认的图片

<img :src="item.prop" @error="defaultSrc"/>

defaultSrc (event) {
  const img = event.srcElement  // 刚开始是以参数的形式定义的,但是默认的图片一直不能使用,遂改为此方式
  img.src = './20211103110717.png' // 默认一张图片。若是public中的图片,直接 ./ 就可以
  // 或 img.src = require('@/assets/images/20211103110717.png')
  img.onerror = null // 若默认的图片地址亦无法正常使用,添加此可控制不一直跳动
}

另:若以动态的方式给img src赋值,切记要加require,例:

{
id:1,
prop: require('@/assets/images/20211103110717.png')
}

vite img src

场景:开发环境下使用下方的方式可以正常显示,但是生产环境下图片不能显示

<template v-for="(item, index) in entranceModule">
    <div @click="jumpModule(item.jumpAddress)">
        <img :src="item.svgUrl" class="item"/>
        <span class="text item">{{ item.text }}</span>
    </div>
</template>

const entranceModule = reactive([
    { svgUrl: '/src/assets/image/slice_mgr.png', text: '切片管理', jumpAddress: '/section'},
    { svgUrl: '/src/assets/image/special_mgr.png', text: '专题管理', jumpAddress: '/special/specialcreate'},
    { svgUrl: '/src/assets/image/ai_read.png', text: '智能阅片', jumpAddress: ''}
])

换成new URL的方式是可以的:
const entranceModule = reactive([
    { svgUrl: new URL('../assets/image/slice_mgr.png', import.meta.url).href, text: '切片管理', jumpAddress: '/section'},
    { svgUrl: new URL('../assets/image/special_mgr.png', import.meta.url).href, text: '专题管理', jumpAddress: '/special/specialcreate'},
    { svgUrl: new URL('../assets/image/ai_read.png', import.meta.url).href, text: '智能阅片', jumpAddress: '/read/speciallist'}
])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiao_cheng_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值