前端(组件传参案例)

父组件(商品详情页)

子组件上边放大图

 

底下缩小轮播图

 

 需求分析:父组件获取图片数据,传给底下子组件进行进行轮播,实现父组件给子组件传参。然后底下子组件轮播后,把当前图片下标给父组件,实现子组件给父组件传参。父组件然后把要展示的图片下标以及数据给上边组件,实现兄弟组件传参。

第一步:父组件获取数据传给子组件

父组件获取数据的json数据

let s = `{"code": 200,"message": "成功","data": {"valuesSkuJson": "{\\"3\\":3}","price": 5999,"categoryView": {"id": 61,"category1Id": 2,"category1Name": "手机","category2Id": 13,"category2Name": "手机通讯","category3Id": 61,"category3Name": "手机"},"spuSaleAttrList": [{"id": 2,"spuId": 1,"baseSaleAttrId": 2,"saleAttrName": "版本","spuSaleAttrValueList": [{"id": 3,"spuId": 1,"baseSaleAttrId": 2,"saleAttrValueName": "8G+128G","saleAttrName": "版本","isChecked": "1"}]}],"skuInfo": {"id": 1,"spuId": 1,"price": 5999,"skuName": "小米10 至尊纪念版 双模5G 骁龙865  120W快充 8GB+128GB 陶瓷黑 游戏手机","skuDesc": "小米10 至尊纪念版 双模5G 骁龙865 120HZ高刷新率 120倍长焦镜头 120W快充 12GB+256GB 陶瓷黑 游戏手机","weight": "1.00","tmId": 1,"category3Id": 61,"skuDefaultImg": "http://39.98.123.211/group1/M00/00/01/rBHu8l-rfvmAIpgZAAIvrX6L9fo612.jpg","isSale": 1,"createTime": "2021-12-10 09:31:42","skuImageList": [{"id": 1,"skuId": 1,"imgName": "ead186426badb626.jpg","imgUrl": "http://39.98.123.211/group1/M00/00/01/rBHu8l-rfvmAHpFuAACTenfIJWo734.jpg","spuImgId": 2,"isDefault": "0"},{"id": 2,"skuId": 1,"imgName": "b58ab2d79b859f39.jpg","imgUrl": "http://39.98.123.211/group1/M00/00/01/rBHu8l-rfvmAcbl2AAFopp2WGBQ404.jpg","spuImgId": 3,"isDefault": "0"},{"id": 3,"skuId": 1,"imgName": "0d93a071c839d890.jpg","imgUrl": "http://39.98.123.211/group1/M00/00/01/rBHu8l-rfvmATs5EAABriLbF9vE207.jpg","spuImgId": 4,"isDefault": "0"},{"id": 4,"skuId": 1,"imgName": "a7b1125239354d0d.jpg","imgUrl": "http://39.98.123.211/group1/M00/00/01/rBHu8l-rfvmAeWopAAEtpBjP1VQ788.jpg","spuImgId": 5,"isDefault": "0"},{"id": 5,"skuId": 1,"imgName": "6029cb2c2b2c7668.jpg","imgUrl": "http://39.98.123.211/group1/M00/00/01/rBHu8l-rfvmAZJX2AAGmVo8Tz9s683.jpg","spuImgId": 6,"isDefault": "0"},{"id": 6,"skuId": 1,"imgName": "2ff0882c9607e57c.jpg","imgUrl": "http://39.98.123.211/group1/M00/00/01/rBHu8l-rfvmAIpgZAAIvrX6L9fo612.jpg","spuImgId": 1,"isDefault": "1"}],"skuAttrValueList": [{"id": 1,"attrId": 106,"valueId": 176,"skuId": 1,"attrName": "手机一级","valueName": "安卓手机"},{"id": 2,"attrId": 107,"valueId": 177,"skuId": 1,"attrName": "二级手机","valueName": "小米"},{"id": 3,"attrId": 23,"valueId": 83,"skuId": 1,"attrName": "运行内存","valueName": "8G"},{"id": 4,"attrId": 24,"valueId": 82,"skuId": 1,"attrName": "机身内存","valueName": "128G"}],"skuSaleAttrValueList": [{"id": 1,"skuId": 1,"spuId": 1,"saleAttrValueId": 1,"saleAttrId": 1,"saleAttrName": "颜色","saleAttrValueName": "陶瓷黑"},{"id": 2,"skuId": 1,"spuId": 1,"saleAttrValueId": 3,"saleAttrId": 2,"saleAttrName": "版本","saleAttrValueName": "8G+128G"}]}},"ok": true
}`;

使用 JSON.parse 方法将 JSON 字符串转换为 JavaScript 对象

let data =ref(JSON.parse(s).data);

把数据传给下方子组件

<spec-scroll :imgList="data.skuInfo.skuImageList" @getIndex="getIndex"></spec-scroll>

下方子组件接收父亲数据

import {defineProps , defineEmits} from "vue"
let props = defineProps(["imgList"]);
let emits = defineEmits(["getIndex"]);
function handler(v){//将v传递给父组件emits("getIndex",v)
}

进行数据展示

    <el-carousel @change="handler" ><el-carousel-item v-for="item in props.imgList" :key="item.id"><div class="carousel-image-container"><img :src="item.imgUrl" alt="Carousel Image" class="carousel-image"></div></el-carousel-item></el-carousel>

第二步子组件把自己下标通过父组件函数传给父组件

父组件子组件获取下标

let index = ref(0);
function getIndex(v){console.log("组件的下标:"+v)index.value = v;
}

第三步父组件把下方组件下标和数据给上方组件

<preview :imgList="data.skuInfo.skuImageList" :index="index"></preview>

上方组件接收父亲给的下标和数据

import { defineProps } from 'vue';
// 定义 props
const props = defineProps({index: {type: Number,required: true},imgList: {type: Array,required: true}
});

最后展示图片

  <div class="preview"><div class="jqzoom"><!-- 动态绑定 img 的 src 属性 --><img :src="props.imgList[props.index].imgUrl" alt="Preview Image" /></div></div>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/492461.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux网络编程】第十二弹---构建与优化HTTP请求处理:从HttpRequest到HttpServer的实战

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、HttpRequest类 1.1、基本结构 1.2、构造析构函数 1.3、反序列化函数 1.4、GetLine() 1.5、打印函数…

使用k6进行kafka负载测试

1.安装环境 kafka环境 参考Docker搭建kafka环境-CSDN博客 xk6-kafka环境 ./xk6 build --with github.com/mostafa/xk6-kafkalatest 查看安装情况 2.编写脚本 test_kafka.js // Either import the module object import * as kafka from "k6/x/kafka";// Or in…

Linux内存管理 --- 进程创建虚拟地址的过程

文章目录 前言一、进程虚拟地址空间二、进程号1的创建过程2.1 kernel_init2.2 kernel_execve2.2.1 alloc_bprm2.2.2 bprm_stack_limits2.2.3 copy_string_kernel2.2.4 bprm_execve 2.3 bprm_execve2.3.1 prepare_binprm2.3.2 load_binary2.3.3 interpreter 三、load_elf_binary…

uniapp blob格式转换为video .mp4文件使用ffmpeg工具

前言 介绍一下这三种对象使用场景 您前端一旦涉及到文件或图片上传Q到服务器&#xff0c;就势必离不了 Blob/File /base64 三种主流的类型它们之间 互转 也成了常态 Blob - FileBlob -Base64Base64 - BlobFile-Base64Base64 _ File uniapp 上传文件 现在已获取到了blob格式的…

springboot447教师薪酬管理系统(论文+源码)_kaic

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;老师信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广…

三、ubuntu18.04安装docker

1.使用默认ubuntu存储库安装docker 更新软件存储库 更新本地软件数据库确保可以访问最新版本。打开终端输入&#xff1a;sudo apt-get update 卸载旧版本的docker 建议继续之前卸载任何旧的docker软件。打开终端输入&#xff1a;sudo apt-get remove docker docker-engine …

Java JDK8之前传统的日期时间-Date、SimpleDateFormat、Calendar

1. Date (1) Date代表的是日期和时间 (2) 常见构造器和常用方法 构造器说明public Date()创建一个Date对象&#xff0c;代表系统当前日期和时间public Date(long time)根据传入的时间毫秒值创建一个Date对象 方法说明public long getTime()返回从1970.1.1 00:00:00到此时的毫…

powershell(1)

免责声明 学习视频来自 B 站up主泷羽sec&#xff0c;如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识&#xff0c;以下代码、网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 泷羽sec官网&#xff1a;http…

matlab绘图时设置左、右坐标轴为不同颜色

目录 一、需求描述 二、实现方法 一、需求描述 当图中存在两条曲线&#xff0c;需要对两条曲线进行分别描述时&#xff0c;应设置左、右坐标轴为不同颜色&#xff0c;并设置刻度线&#xff0c;且坐标轴颜色需要和曲线颜色相同。 二、实现方法 1.1、可以实现&#xff1a; 1…

初学stm32 --- 窗口看门狗

STM32F1 窗口看门狗 窗口看门狗&#xff08;WWDG&#xff09;通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在 T6 位&#xff08;WWDG->CR 的第六位&#xff09;变成 0 前被刷新&#xff0c;看门狗电…

Kafka Streams 在监控场景的应用与实践

作者&#xff1a;来自 vivo 互联网服务器团队- Pang Haiyun 介绍 Kafka Streams 的原理架构&#xff0c;常见配置以及在监控场景的应用。 一、背景 在当今大数据时代&#xff0c;实时数据处理变得越来越重要&#xff0c;而监控数据的实时性和可靠性是监控能力建设最重要的一环…

论文笔记:是什么让多模态学习变得困难?

整理了What Makes Training Multi-modal Classification Networks Hard? 论文的阅读笔记 背景方法OGR基于最小化OGR的多监督信号混合在实践中的应用 实验 背景 直观上&#xff0c;多模态网络接收更多的信息&#xff0c;因此它应该匹配或优于其单峰网络。然而&#xff0c;最好的…

【鸿蒙实战开发】HarmonyOS状态管理之@Link

前言 在前面两篇状态管理相关的文章中&#xff0c;我们分别讲解了 State 和 Prop 两个状态管理装饰器的作用和基本使用。State 状态管理装饰器是最基本的状态管理装饰器&#xff0c;组件使用其修饰的变量&#xff0c;组件的更新可以随着变量的变化而更新&#xff1b;Prop 状态…

Nginx常用配置详解(1)

Nginx常用配置详解 一、全局块&#xff08;main&#xff09;配置 在Nginx的配置文件中&#xff0c;最外层的部分是全局块。这部分配置通常会影响Nginx服务器整体的运行参数。 worker_processes 作用&#xff1a;这个配置指令用于指定Nginx工作进程的数量。工作进程是Nginx处理…

NVIDIA发布紧凑型生成式AI超级计算机:性能提升,价格更低

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

jmeter连接mysql

查询mysql数据库版本 SELECT VERSION(); 下载jmeter mysql 驱动jar包&#xff0c;版本低于mysql版本&#xff0c;放在jmeter的lib 路径下 MySQL :: Download MySQL Connector/J (Archived Versions) 添加JDBC Connection Configuration 填写 variable name 及数据库信息 注意…

STM32二刷学习笔记--GPIO

文章目录 GPIO使用详解GPIO基本结构GPIO工作模式简单示例推挽输出LED闪烁按键控制LED闪烁**LED控制函数****按键控制函数** GPIO使用详解 在STM32开发中&#xff0c;GPIO&#xff08;通用输入输出&#xff09;是与外设接口的基础模块。通过GPIO&#xff0c;我们可以连接各种外…

PCDN之网心云

PCDN之网心云 前言 利用闲置宽带赚取收益 CDN原理 使用你的设备缓存加速资源 当别人需要访问资源时会就近分配访问到你缓存资源实现边缘加速的效果 推荐宽带上行 >10MB 磁盘大于60G 否则收益可能不是很高 注册网心云账号 打开如下网址注册 务必填写邀请码 否则会少几块…

FPGA-PS端编程1:

目标 在小梅哥的zynq 7015上&#xff0c;完成以下目标&#xff1a; 读取 S1 按键的电平&#xff0c; 当 S1 按键为按下状态时&#xff0c;驱动 PS LED 以 1S 的频率闪烁(注意理解 1S 的频率闪烁和 1S的时间翻转两种描述之间的差别)&#xff0c; 当 S1 释放后&#xff0c;停止…

ArcGIS计算土地转移矩阵

在计算土地转移矩阵时&#xff0c;最常使用的方法就是在ArcGIS中将土地利用栅格数据转为矢量&#xff0c;然后采用叠加分析计算&#xff0c;但这种方法计算效率低。还有一种方法是采用ArcGIS中的栅格计算器&#xff0c;将一个年份的地类编号乘以个100或是1000再加上另一个年份的…