Image 图片

引入

通过以下方式来全局注册组件,更多注册方式请参考组件注册

基础用法

基础用法与原生 标签一致,可以设置 srcwidthheightalt 等原生属性。

  1. <van-image width="100" height="100" src="https://img.yzcdn.cn/vant/cat.jpeg" />

填充模式

通过 fit 属性可以设置图片填充模式,可选值见下方表格。

  1. <van-image
  2. width="10rem"
  3. height="10rem"
  4. fit="contain"
  5. src="https://img.yzcdn.cn/vant/cat.jpeg"
  6. />

圆形图片

通过 round 属性可以设置图片变圆,注意当图片宽高不相等且 fitcontainscale-down 时,将无法填充一个完整的圆形。

  1. <van-image
  2. width="100"
  3. height="100"
  4. lazy-load
  5. />
  1. import { createApp } from 'vue';
  2. import { Lazyload } from 'vant';
  3. const app = createApp();
  4. app.use(Lazyload);

加载中提示

Image 组件提供了默认的加载中提示,支持通过 loading 插槽自定义内容。

加载失败提示

Image 组件提供了默认的加载失败提示,支持通过 error 插槽自定义内容。

  1. <van-image src="https://img.yzcdn.cn/vant/cat.jpeg">
  2. <template v-slot:error>加载失败</template>
  3. </van-image>

Props

图片填充模式 

Slots

类型定义

组件导出以下类型定义:

  1. import type { ImageFit } from 'vant';

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 。

如何引用本地图片?

使用 Image 组件时,可能会遇到将 <image> 作为标签名时无法渲染的问题,比如下面的写法:

  1. <template>
  2. <image src="xxx" />
  3. </template>
  4. <script>
  5. import { Image } from 'vant';
  6. export default {
  7. components: {
  8. Image,
  9. },

这是因为 <image> 标签是原生的 SVG 标签,Vue 不允许将原生标签名注册为组件名,使用 <van-image> 即可规避这个问题。