Skip to content
14:21
Image

Image 图片

介绍 ​

图片组件对原生 image 进行增强封装,mode 等原生能力同名直通透传,并扩展加载中与加载失败占位、淡入过渡、圆角与圆形等特性。

代码演示 ​

基础用法 ​

src 为必填的图片地址,未传尺寸时默认宽度 100%、高度 240px;width 与 height 支持字符串(原样使用,支持 % 等单位)与数字(自动补 px)。

vue
<m-image src="https://cdn.example.com/demo.jpg" />
<m-image src="https://cdn.example.com/demo.jpg" width="160px" height="160px" />
<m-image src="https://cdn.example.com/demo.jpg" :width="120" :height="120" />

填充模式 ​

通过 mode 属性设置裁剪缩放模式,与原生 image 的 mode 同名直通,默认为 aspectFill(裁剪填满、比例不变形)。

vue
<m-image src="https://cdn.example.com/demo.jpg" width="110px" height="110px" mode="scaleToFill" />
<m-image src="https://cdn.example.com/demo.jpg" width="110px" height="110px" mode="aspectFit" />
<m-image src="https://cdn.example.com/demo.jpg" width="110px" height="110px" mode="widthFix" />

圆角与圆形 ​

通过 radius 属性设置圆角,round 属性展示为圆形(优先于 radius)。

vue
<m-image src="https://cdn.example.com/demo.jpg" width="80px" height="80px" round />
<m-image src="https://cdn.example.com/demo.jpg" width="80px" height="80px" radius="8" />
<m-image src="https://cdn.example.com/demo.jpg" width="80px" height="80px" radius="16" />

加载与失败占位 ​

加载中与加载失败时默认展示占位图标,loading-icon 与 error-icon 可自定义占位图标,icon-size 设置占位图标大小;show-loading 与 show-error 可关闭占位;loading 与 error 插槽可自定义占位内容。

vue
<m-image src="https://cdn.example.com/nonexistent.jpg" width="110px" height="110px" />
<m-image src="https://cdn.example.com/nonexistent.jpg" width="110px" height="110px" error-icon="photo-o" />
<m-image src="https://cdn.example.com/nonexistent.jpg" width="110px" height="110px" :show-error="false" />

懒加载与淡入 ​

lazy-load 懒加载透传原生属性,限 page 与 scroll-view 下生效;fade 开启后图片加载完成时以 300ms 淡入显示,默认开启,换图时自动重置回加载态。

vue
<m-image src="https://cdn.example.com/demo.jpg" width="130px" height="130px" lazy-load />
<m-image src="https://cdn.example.com/demo.jpg" width="130px" height="130px" :fade="false" />

API ​

Props ​

参数说明类型默认值
src图片资源地址string-
mode裁剪缩放模式,与原生 image mode 同名直通ImageModeaspectFill
lazy-load是否懒加载,透传原生 lazy-load 属性booleanfalse
fade加载完成后是否淡入显示booleantrue
width图片宽度,number 自动补 px,未传默认 100%string | number | nullnull
height图片高度,number 自动补 px,未传默认 240pxstring | number | nullnull
radius圆角值,number 自动补 pxstring | number | nullnull
round是否展示为圆形,优先于 radiusbooleanfalse
show-loading是否显示加载中占位booleantrue
show-error是否显示加载失败占位booleantrue
loading-icon加载中占位图标名称IconNamephoto
error-icon加载失败占位图标名称IconNamephoto-fail
icon-size占位图标大小,纯数字自动补 pxstring32
custom-class自定义根节点类名string.ClassString-
custom-style自定义根节点内联样式string-

Events ​

事件名说明回调参数
click点击图片时触发event: MouseEvent
load图片加载成功时触发,detail 含图片宽高event: UniImageLoadEvent
error图片加载失败时触发,detail 含错误信息event: UniImageErrorEvent

Slots ​

名称说明
loading加载中占位内容
error加载失败占位内容
default自定义内容,渲染为图片之后的兄弟节点

主题定制 ​

图片样式可通过以下 SCSS 变量定制(在项目根 uni.scss 中直接定义即可覆盖默认值):

变量说明默认值
$m-image-background加载中与失败占位背景色#f7f8fa
$m-image-icon-color占位图标颜色#dcdee0

完整变量与覆盖方式见主题定制。

Released under the MIT License.