介绍
增强版的 img 标签,提供多种图片填充模式,支持图片懒加载、加载中提示、加载失败提示
引入
import Vue from 'vue';
import { Image } from 'vant';
Vue.use(Image);
代码演示
基础用法
基础用法与原生img标签一致,可以设置src、width、height、alt等原生属性
<van-image
width="100"
height="100"
src="https://img.yzcdn.cn/vant/cat.jpeg" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow"
/>
填充模式
通过fit属性可以设置图片填充模式,可选值见下方表格
<van-image
width="10rem"
height="10rem"
fit="contain"
src="https://img.yzcdn.cn/vant/cat.jpeg" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow"
/>
圆形图片
通过round属性可以设置图片变圆,注意当图片宽高不相等且fit为contain或scale-down时,将无法填充一个完整的圆形。
<van-image
round
width="10rem"
height="10rem"
src="https://img.yzcdn.cn/vant/cat.jpeg" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow"
/>
图片懒加载
设置lazy-load属性来开启图片懒加载,需要搭配 Lazyload 组件使用
<van-image
width="100"
height="100"
lazy-load
src="https://img.yzcdn.cn/vant/cat.jpeg" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow"
/>
import Vue from 'vue';
import { Lazyload } from 'vant';
Vue.use(Lazyload);
加载中提示
Image组件提供了默认的加载中提示,支持通过loading插槽自定义内容
<van-image src="https://img.yzcdn.cn/vant/cat.jpeg" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >
<template v-slot:loading>
<van-loading type="spinner" size="20" />
</template>
</van-image>
加载失败提示
Image组件提供了默认的加载失败提示,支持通过error插槽自定义内容
<van-image src="https://img.yzcdn.cn/vant/cat.jpeg" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >
<template v-slot:error>加载失败</template>
</van-image>
API
Props
src | 图片链接 | string | - |
fit | 图片填充模式 | string | fill |
alt | 替代文本 | string | - |
width | 宽度,默认单位为px | number | string | - |
height | 高度,默认单位为px | number | string | - |
radius v2.1.6 | 圆角大小,默认单位为px | number | string | 0 |
round | 是否显示为圆形 | boolean | false |
lazy-load | 是否开启图片懒加载,须配合 Lazyload 组件使用 | boolean | false |
show-error v2.0.9 | 是否展示图片加载失败提示 | boolean | true |
show-loading v2.0.9 | 是否展示图片加载中提示 | boolean | true |
error-icon v2.4.2 | 失败时提示的 图标名称 或图片链接 | string | warning-o |
loading-icon v2.4.2 | 加载时提示的 图标名称 或图片链接 | string | photo-o |
图片填充模式
contain | 保持宽高缩放图片,使图片的长边能完全显示出来 |
cover | 保持宽高缩放图片,使图片的短边能完全显示出来,裁剪长边 |
fill | 拉伸图片,使图片填满元素 |
none | 保持图片原有尺寸 |
scale-down | 取none 或contain 中较小的一个 |
Events
click | 点击图片时触发 | event: Event |
load | 图片加载完毕时触发 | - |
error | 图片加载失败时触发 | - |
Slots
loading | 自定义加载中的提示内容 |
error | 自定义加载失败时的提示内容 |