当前位置: 首页 > news >正文

uniapp实战:父子组件传参之子组件数量动态变化

需求说明

    现有的设置单元列表,每个带有虚线加号的可以看做是一组设置单元,点击加号可以添加一组设置单元.点击设置单元右上角可以删除对应的设置单元.在这里插入图片描述

实现思路说明

    利用数组元素添加或是删除的方式实现页面数量动态变化.由于每个设置单元内容都相同所以单独封装了一个子组件.下面是实现过程:
父页面

<template><view class="out"><view class="content"><view class="setting"><setFriend class="addUnit" v-for="unitIndex in unitList" :unitList="unitList"></setFriend><view class="addUnitClass" @click="addUnit"><image class="add_unit_img" src="../../static/add_unit.png"></image></view></view></view></view>
</template><script>export default {data() {return {// 自定义数组,元素可以随便写unitList:[1,2,3]}},methods: {addUnit(){// 添加添加按钮,数组添加一个元素,元素内容可以任意this.unitList.push(1)}}}
</script><style lang="scss">uni-page-body,page {height:100%;background-color: rgb(242, 242,242);}.out{display: flex;justify-content: center;align-items: center;width: 90%;margin: auto;.content{width: 100%;// height: 400px;display: flex;justify-content: center;align-items: center;flex-direction: column;.setting{width: 100%;display: flex;justify-content: flex-start;align-items: center;flex-direction: row;flex-wrap:wrap;.addUnit{width: 50%;height: 150px;margin-bottom: 15px;}.addUnitClass{position: relative;top: 10px;margin-left: 7px;width: 45%;height: 150px;margin-bottom: 15px;background-color: white;display: flex;justify-content: center;align-items: center;border-radius: 5px;.add_unit_img{width: 80%;height: 80%;}}}}}		</style>

设置单元子组件

<template><view><view class="unit"><image class="close_img" src="../../static/close_button.png" @click="closeUnit"></image><view class="uni_item"><image class="upload_img" src="../../static/upload_img.png"></image></view></view></view>
</template><script>export default {name:"setFriend",data() {return {};},// 设置属性unitListprops:{unitList: {type: Array,default: [1,2],required: false}},methods:{closeUnit(){// 点击关闭按钮,数组减一处理if(this.unitList.length != 0){this.unitList.splice(0, 1);}}}}
</script><style lang="scss">uni-page-body,page {height:100%;background-color: rgb(242, 242,242);}.unit{width: 90%;height: 150px;background-color: white;margin-top: 9px;margin-left: 5px;border-radius: 5px;position: relative;left: 1px;.close_img{width: 20px;height: 20px;position: absolute;left:140px;top:-8px;}.uni_item{width: 100%;height: 100%;display: flex;justify-content: center;align-items: center;flex-direction: column;.upload_img{width:65px;height: 65px;margin-bottom: 10px;}}}}</style>
http://www.lryc.cn/news/308535.html

相关文章:

  • Ubuntu绑定USB接口到固定端口
  • 解决gogs勾选“使用选定的文件和模板初始化仓库”报错500,gogs邮件发送失败,gogs邮件配置不生效,gogs自定义模板等问题
  • 数字后端——DEF文件格式
  • 【可做课设、附完整技术文档】流式、异步、实时的Django聊天室!(需进一步定制可联系本人)
  • 网络编程:基于TCP和UDP的服务器、客户端
  • kubectl 命令行管理K8S(上)
  • Redis 之四:Redis 事务和乐观锁
  • C# WPF编程-创建项目
  • 密码学及其应用(应用篇15)——0/1背包问题
  • 基于springboot+vue的实验室管理系统(前后端分离)
  • 华为OD技术面试案例5-2024年
  • 【QT+QGIS跨平台编译】之五十五:【QGIS_CORE跨平台编译】—【qgsmeshcalcparser.cpp生成】
  • Unity(第二十部)效果 粒子、线条和拖尾
  • 全量知识系统问题及SmartChat给出的答复 之6 三套工具之1
  • [RoarCTF 2019]Easy Calc
  • 完美解决 git 报错fatal: Not a git repository (or any of the parent directories): .git
  • electron无法设置自己的图标?渲染进程require报错?
  • vscode连接服务器与FileZilla上传到服务器
  • 练习 1 Web EasySQL极客大挑战
  • matlab生成模拟的通信信号
  • Altair® SimLab® 以流程为导向的多学科仿真环境,可连接CAD 的多物理场工作流程
  • Python爬虫-爬取B站番剧封面
  • AI时代的产品文案秘籍:如何用AI提升效率
  • 前端架构: 脚手架通用框架封装之入口文件开发(教程一)
  • 吴恩达《机器学习》学习笔记
  • 【FPGA】线性反馈移位寄存器(LFSR)的Verilog实现
  • yolov8涨点技巧,添加SwinTransformer注意力机制,提升目标检测效果
  • k8s初始化错误
  • adb命名大全
  • 计算机发展史 (5)携手共赴难