更新记录
1.0.0(2026-10-12)
下载此版本
平台兼容性
uni-app(3.8.5)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| - |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| √ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
uni-app x(3.8.5)
| Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
| - |
- |
- |
- |
- |
- |
其他
| 多语言 |
暗黑模式 |
宽屏模式 |
蒸汽模式 |
| × |
× |
√ |
× |
vant-image-preview
图片预览组件(Vant 风格,零业务耦合),支持函数式与组件式两种调用
介绍
图片预览用于在 fullscreen 遮罩中查看大图,支持左右切换、计数、关闭按钮。本组件为 Vue3 <script setup lang="ts"> 实现,样式令牌统一来自宿主 uni.scss 的 $uni-* 体系。
基础用法
<!-- 函数式调用 -->
<vant-button @click="openByFunction">预览图片</vant-button>
<script setup lang="ts">
import { showImagePreview } from '@/uni_modules/vant-image-preview/components/vant-image-preview/image-preview'
const images = [
'https://example.com/a.png',
'https://example.com/b.png',
'https://example.com/c.png',
]
const openByFunction = () => showImagePreview({ images, startPosition: 0 })
</script>
<!-- 组件式调用(v-model:show) -->
<vant-switch v-model="show" />
<vant-image-preview v-model:show="show" :images="images" :start-position="0" />
Props
| 参数 |
说明 |
类型 |
默认值 |
| show |
是否展示(支持 v-model:show) |
boolean |
false |
| images |
图片地址列表 |
string[] |
[] |
| start-position |
初始展示位置(索引) |
number |
0 |
| closeable |
是否展示关闭按钮 |
boolean |
true |
| close-icon |
关闭图标名称(透传 vant-icon) |
string |
'cross' |
Events
| 事件名 |
说明 |
回调参数 |
| update:show |
显隐状态变化时触发(v-model) |
v: boolean |
| close |
点击关闭按钮时触发 |
— |
Slots
本组件暂无插槽。图片与按钮均为内部渲染;如需自定义,请基于组件源码扩展。
函数式 API
showImagePreview(images: string[] | { images: string[]; startPosition?: number; closeable?: boolean }):打开预览。
closeImagePreview():关闭预览。
ImagePreview.show(...) / ImagePreview.close():便捷对象封装。
平台兼容性
设计约束
- 仅 Vue3,不提供 Vue2 /
.uvue 实现。
- 组件零业务耦合:无
navigateTo / redirectTo / reLaunch / switchTab / request / cloud 等调用。
- 样式令牌统一来自宿主
uni.scss 的 $uni-*,遮罩背景使用 $uni-bg-color-mask,无硬编码色值。