Vue+Vant ui实现图片预览 ---------------升级版

  • 前言 =====
    1.
     当我在使用vant的图片预览的时候  :src里面的不是item,而是item.path
     这时他会报错,说src里面的是对象不是字符串,
     所以我们要用第二种方法 解决:item.path会报错的问题
    2.
    注意当我们要使用多个图片预览的时候 下标值一定不要重复,否则预览的图片会相同
    
    @click="sceneImg(lastDetails.children[0].filesinfo, idx)"
    @click="sceneImg(lastDetails.children[idx + 1].filesinfo, ttt)"

  • 1、在所需要使用的组件里面引用
import { ImagePreview } from 'vant';

  • (第一种方法 :src="item")
  • 2、具体使用详解
// 通过函数传参的方式把图片数组和位置索引放入到 ImagePreview 配置对象里面
<div v-for="(item,index) in device.imgs" :key="index">
    <img :src="item" @click="sceneImg(device.imgs,index)"/>
</div>

3.js

<script>
import { ImagePreview } from "vant"; // 引入Vant图片预览组件
export default {
data() {
    return {
    };
  },
methods:{
    // 图片预览
    sceneImg(images,index) {
      ImagePreview({
        images:images, //需要预览的图片 URL 数组
        showIndex:true, //是否显示页码
        loop:false, //是否开启循环播放
        startPosition:index //图片预览起始位置索引
      })
    },
  }
}
</script>

============

接下来看第二种(:src="item.path")

                  <div
                  v-for="(itm, idx) in lastDetails.children[0].filesinfo"
                  :key="idx"
                  >
                    <img
                      src="../../assets/image/upimg.png"
                      @click="sceneImg(lastDetails.children[0].filesinfo, idx)"
                    />
                    <img
                      v-else
                      src="../../assets/image/upload.png"
                      @click="click_file(itm.path)"
                      alt=""
                    />
                </div>


    // 转办图片预览
    sceneImg(images, index) {
      ImagePreview({
        images: images.map((v) => v.path), //需要预览的图片 URL 数组
        showIndex: true, //是否显示页码
        loop: false, //是否开启循环播放
        startPosition: index, //图片预览起始位置索引
      });
    },

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 axios 获取接口数据并实现 Vant 图片预览功能,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了 axios 和 vant 组件库。如果没有安装,可以通过运行以下命令进行安装: ``` npm install axios vant ``` 2. 在您的代码中导入 axios 和 vant 相关组件: ```javascript import axios from 'axios'; import { ImagePreview } from 'vant'; ``` 3. 使用 axios 发起请求获取图片数据,并将其保存到一个变量中: ```javascript axios.get('your_api_endpoint').then(response => { const imageData = response.data; // 假设返回的数据是一个包含图片信息的数组 // 其他处理逻辑... }); ``` 在上述代码中,`your_api_endpoint` 应替换为您实际的接口地址,`response.data` 是获取到的接口数据。 4. 在需要预览图片的地方,使用 Vant 的 `ImagePreview` 组件来实现图片预览功能。例如,您可以在一个图片列表中循环渲染图片,并为每个图片添加点击事件: ```html <template> <div> <img v-for="image in imageData" :src="image.url" @click="previewImage(image.url)" /> </div> </template> ``` 5. 在 Vue 实例的方法中定义 `previewImage` 方法,该方法使用 `ImagePreview` 组件来预览图片: ```javascript methods: { previewImage(url) { ImagePreview([{ url }]); } } ``` 在上述代码中,`url` 是被点击的图片的 URL。 通过以上步骤,您可以使用 axios 获取接口数据,并使用 Vant 的 `ImagePreview` 组件实现图片预览功能。请注意根据您的实际情况进行适当的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值