uniapp img组件的使用方法
在uniapp中使用img组件时,如何正确设置图片路径?我在项目中尝试使用相对路径和网络链接都显示失败,不知道是不是格式写错了。另外,img组件支持哪些图片格式?是否需要额外配置才能显示webp或svg这类格式?还有,如何实现图片懒加载和错误占位图功能?希望能得到具体的代码示例。
2 回复
uniapp中,使用img组件显示图片,src属性指定图片路径。支持本地和网络图片。示例:<img src="/static/logo.png" mode="aspectFit">。mode属性控制图片显示方式,如缩放、裁剪等。
在 UniApp 中,<img> 组件用于显示图片,但实际开发中推荐使用 <image> 组件(UniApp 官方封装,兼容多端)。以下是详细使用方法:
基本用法
<image src="/static/logo.png" mode="aspectFit"></image>
- src:图片路径,支持本地路径(如
/static/目录)或网络 URL(需配置域名白名单)。 - mode:图片裁剪/缩放模式,常用值:
scaleToFill(默认):拉伸填满容器,可能变形。aspectFit:保持宽高比,完整显示图片。aspectFill:保持宽高比填充,可能裁剪。widthFix:宽度固定,高度自适应。
常用属性
- 懒加载(节省流量):
<image lazy-load src="https://example.com/image.jpg"></image> - 占位图与加载失败:
<image src="https://example.com/image.jpg" :show-menu-by-longpress="true" @error="handleError" > <view class="placeholder">加载中...</view> </image>@error:图片加载失败时触发事件。show-menu-by-longpress:长按显示菜单(保存图片等)。
注意事项
- 本地路径建议放在
static目录,编译后路径不变。 - 网络图片需在
manifest.json的networkTimeout或各平台配置中设置域名信任。 - 大量图片建议使用懒加载优化性能。
示例代码
<template>
<view>
<!-- 本地图片 -->
<image src="/static/avatar.jpg" mode="widthFix"></image>
<!-- 网络图片(带懒加载) -->
<image
lazy-load
mode="aspectFill"
src="https://via.placeholder.com/300"
@load="onImageLoad"
@error="onImageError"
/>
</view>
</template>
<script>
export default {
methods: {
onImageLoad() {
console.log('图片加载成功');
},
onImageError() {
console.log('图片加载失败');
}
}
}
</script>
通过合理使用 mode 和懒加载,可有效提升图片显示效果和页面性能。

