IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue通过传递参数动态展示图片 -> 正文阅读

[JavaScript知识库]vue通过传递参数动态展示图片

携带参数

?

展示效果

?

?

父组件-html

    <div class="page_linkbox">
      <div class="link_left">主页地址</div>
      <div class="link_right"
           @click="showLinkwhere">
        <img class="right_img"
             src="../../assets/validation/plat-union.png"//随便图片
             alt="">
        <span class="right_text">链接在哪</span>
      </div>
      <div class="linkBox"
           v-if="showLink">
        <div class="link_wherebox">
          <div class="close_btn"
               @click="closeLink">
            <img src="../../assets/validation/plat-close.png"  //关闭按钮图片
                 alt="">
          </div>
          <div class="title">如何找到{{terraceInfo.name}}主页链接</div>
          <v-accountImg :code="terraceInfo.code"></v-accountImg>//把code传递过去
        </div>
      </div>

?父组件 js

<script lang='ts'>
import accountImg from '../validation/components/accountImg.vue'
import { defineComponent, onMounted, computed, reactive, ref } from 'vue'
import { useRouter, useRoute } from 'vue-router'
import { Toast, Dialog } from 'vant'
export default defineComponent({
  components: {
    'v-accountImg': accountImg,
  },
  setup() {
    const router = useRouter(),
      route = useRoute()
    const title = ref(route.meta?.title || '')
    const terraceInfo: any = ref({
      code: '',
      id: '',
      name: '',
      flag: false,
      homelink: '',
      homepage: '',
      platInfo: {},
    })
    const code = ref()
    const homelink = ref('') 
    const showLink = ref(false) //是否展示链接在哪
    const showLinkwhere = () => {
      showLink.value = !showLink.value
    }
    const closeLink = () => {
      showLink.value = !showLink.value
    }
    onMounted(() => {
      sessionStorage.removeItem('terraceInfo') //流程开始清除缓存
      if (route.query.name) {
        terraceInfo.value.name = route.query.name
        terraceInfo.value.id = route.query.id
        terraceInfo.value.code = route.query.code
      }
    })

    return {
      title,
      terraceInfo,
      showLink,
      homelink,
      code,
      //方法
      showLinkwhere,
      closeLink,
    }
  },
})

父组件css

<style scoped>
 .page_linkbox {
  margin-top: 0.56rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.24rem;
}
 .page_linkbox .link_left {
  color: #151515;
  font-size: 0.28rem;
  line-height: 0.4rem;
}
.page_linkbox .link_right {
  display: flex;
  align-items: center;
}
.page_linkbox .link_right .right_img {
  width: 0.28rem;
  height: 0.28rem;
  margin-right: 0.08rem;
}
 .page_linkbox .link_right .right_text {
  color: #61646c;
  font-size: 0.24rem;
}
.btnCont {
  position: fixed;
  bottom: 0rem;
  background-color: #fff;
  padding: 0.1rem 0 0.4rem 0;
  left: 0;
  width: 100%;
  border: 0;
  text-align: center;
}
 .btnCont .savebtn {
  color: #fff;
  display: inline-block;
  height: 0.88rem;
  line-height: 0.88rem;
  border-radius: 0.44rem;
  width: 6.9rem;
  margin: auto;
  font-size: 0.3rem;
}
.btnCont .saveTrue {
  background-color: #ff0b95;
}
.btnCont .saveFalse {
  background-color: #ffbfe4;
}
.pagelinkIpt {
  height: 3.3rem;
  width: 6.9rem;
  box-sizing: border-box;
  text-align: left;
  padding: 0.3rem;
  outline: none;
  border: 0;
  background-color: #f4f7f9;
  resize: none;
  border-radius: 0.12rem;
  color: #61646c;
  font-size: 0.28rem;
  word-break: break-all;
}
.pagelinkIpt::-webkit-input-placeholder {
  color: #c1c4cb;
  font-size: 0.28rem;
}
.linkBox {
  position: fixed;
  top: 0rem;
  left: 0rem;
  height: 100%;
  width: 100%;
  overflow: hidden;
  z-index: 999;
  background-color: rgba(0, 0, 0, 0.4);
}
.link_wherebox {
  width: 100%;
  /* overflow: auto;
  height: 60vh; */
  position: absolute;
  bottom: 0;
  left: 0;
  background: #fff;
  border-radius: 0.16rem 0.16rem 0 0;
  padding: 0.5rem 0.3rem 0.52rem 0.3rem;
  box-sizing: border-box;
}
.link_wherebox .close_btn {
  width: 0.4rem;
  height: 0.4rem;
  position: absolute;
  right: 0.3rem;
  top: 0.3rem;
}
.link_wherebox .close_btn img {
  width: 100%;
  height: 100%;
}
.link_wherebox .title {
  text-align: center;
  margin-bottom: 0.4rem;
  color: #151515;
  font-size: 0.32rem;
  font-weight: 500;
}
</style>

子组件

<template>
  <div class="account_imgbox">

    <img class="platimg"
         v-for="(item,index) in imgList"
         :key="index"
         :src="'图片路径/'+item"//这个就填你自己图片的前面路径就可以
         alt="">
  </div>
</template>

<script>
export default {
  data() {
    return {
      plantImg: {
        1: {
          title: '微博',
          list: ['1_1.png', '1_2.png', '1_3.png', '1_4.png'],
        },
        4: {
          title: '抖音',
          list: ['4_1.png', '4_2.png', '4_3.png', '4_4.png', '4_5.png'],
        },
        5: {
          title: '快手',
          list: ['5_1.png', '5_2.png', '5_3.png', '5_4.png'],
        },
        6: {
          title: '小红书',
          list: ['6_1.png', '6_2.png', '6_3.png'],
        },
        7: {
          title: '哔哩哔哩',
          list: ['7_1.png', '7_2.png', '7_3.png'],
        },
        8: {
          title: '美图',
          list: ['8_1.png', '8_2.png', '8_3.png', '8_4.png', '8_5.png'],
        },
        9: {
          title: '知乎',
          list: ['9_1.png', '9_2.png', '9_3.png', '9_4.png'],
        },
      },
      imgList: [],
    }
  },
  props: {
    code: 0,
  },
  computed: {},
  mounted() {
    this.imgList = this.plantImg[this.code].list
  },
  methods: {},
}
</script>


<style  scoped>
.account_imgbox {
  max-height: 60vh;
  overflow-y: scroll;
}

.account_imgbox .platimg {
  width: 100%;
  min-height: 4.5rem;
}
</style>

遇到一个问题 一开始用了vant 中的van-overlay 里面展示图片过高度写了scorll也会不产生滚动条

自己写了一个遮罩层就好了,组件中的问题暂时没找到解决办法

如果有解决办法请指教

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-18 17:32:01  更:2022-05-18 17:32:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:55:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码