<template>
  <div>
    <van-image
      v-for='(image, index) in images'
      :key='index'
      :src='image.url'
      :fit='fitMode'
      :lazy-load='lazyLoad'
      @click.native='showImage(index)'
      style='margin-bottom: 10px;'
    />
    <van-image-preview :images='previewImages' v-model='showPreview' @change='onChange' />
  </div>
</template>
<script>
export default {
  data() {
    return {
      images: [], // 从数据库中获取的图片保存地址列表
      fitMode: 'cover', // 图片填充模式
      lazyLoad: true, // 是否开启图片懒加载
      showPreview: false, // 是否显示图片预览
      currentIndex: 0, // 当前预览图片的索引
    };
  },
  computed: {
    previewImages() {
      // 将图片保存地址列表转换为预览图片对象列表
      return this.images.map((image) => ({
        src: image.url,
        fit: this.fitMode,
      }));
    },
  },
  methods: {
    showImage(index) {
      this.currentIndex = index;
      this.showPreview = true;
    },
    onChange(index) {
      this.currentIndex = index;
    },
  },
};
</script>
<p>上述代码中,使用了 Vant 的 <code>van-image</code> 组件展示图片,通过 <code>v-for</code> 循环遍历数据库中的图片保存地址列表,并将每个图片地址绑定到 <code>src</code> 属性上。当用户点击图片时,会调用 <code>showImage</code> 方法显示图片预览,并将当前点击的图片索引赋值给 <code>currentIndex</code>。<code>van-image-preview</code> 组件用于展示图片预览,通过 <code>v-model</code> 绑定 <code>showPreview</code> 来控制显示与隐藏,<code>@change</code> 事件监听用户切换预览图片的操作,并将切换后的图片索引赋值给 <code>currentIndex</code>。在 <code>computed</code> 计算属性中,将图片保存地址列表转换为预览图片对象列表,其中每个预览图片对象包含了图片地址和填充模式。</p>
Vant 图片展示:从数据库获取图片地址并放大查看

原文地址: https://www.cveoy.top/t/topic/o39h 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录