uni-app入门:自定义组件实现父子组件参数传递

news2025/1/16 16:12:06

     1.属性绑定:父组件传递参数到子组件
     2.事件绑定:子组件传递参数到父组件
     3.获取组件对象实例:父组件获取子组件实例对象进行参数传递

1.属性绑定:父组件传递参数到子组件

    首先交代一下基本的项目信息:主页面为index.wxml,创建test子组件,文件目录:component/test/test,index.json中引用test组件.

{
  "component": true,
  "usingComponents": {
    "test":"/component/test/test"
  }
}

演示案例:
    父组件中定义num并初始化数据为1,将num传递到子组件test中并展示.
index.js中定义num并初始化数据为1

Page({
  data: {
    num:1
   }
   })

index.html中创建view组件

<view>父组件属性:{{num}}</view>

test.html中接收父组件中数据:

<view>子组件获取到父组件的属性:{{num}}</view>

test.js中定义num属性:

Componet({
  properties:{
    num:Number
  }
})

页面展示效果如下:
在这里插入图片描述

2.2.事件绑定:子组件传递参数到父组件

    操作步骤:
1.父组件js中定义函数;
2.父组件中通过传递自定义事件形式传递给子组件;
3.子组件js中调用父组件自定义事件;

 this.triggerEvent('父组件函数',
      {value: 子组件参数});

4.父组件自定义事件处理子组件传递参数,通过event.detail.value获取
    示例说明:
index.wxml中添加test组件,test组件创建初始值subCount和加一按钮,点击按钮实现subCount加一.父组件中创建初始值parCount,实现test子组件中点击按钮之后不仅能实现subCout加一,也能将subCount赋值给parCount.即点击按钮实现subCount与parCount同步变化.
子组件test中初始化subCount以及创建按钮实现点击加一操作:
test.wxml:

<view>子组件data属性subCount值:{{subCount}}</view>
<button type="primary" bindtap="subCountAdd">子组件中点击数据值加一</button>

test.js中:

 Component({
data:{
    subCount:1
  },
 methods:{
 subCountAdd:function(){
      this.setData({
        subCount: this.data.subCount+1
      })
    }}
})

父组件index.js中初始化parCount并创建传递参数函数,通过参数event.detail.value来获取传递参数:

Page({
  data: {
    parCount:2
   },
   // 自定义父组件函数
   transferFucntion(event){
    console.log("父组件中传参事件触发!"),
    console.log(event.detail)
  }
  }
)

父组件index.wxml中在子组件test中传递自定义函数:

<test bind:transferFucntion="transferFucntion"></test>
<view>父组件data属性parCount值:{{parCount}}</view>

子组件test.js中的加一方法中添加父组件的自定义事件,传递参数为

Component({
data:{
    subCount:1
  },
 methods:{
 subCountAdd:function(){
      this.setData({
        subCount: this.data.subCount+1
      }),
        // 注册父组件方法,this.triggerEvent('父组件函数名',参数(非必填))
      this.triggerEvent('transferFucntion',
      {value: this.data.subCount});
    }}
})

父组件index.js中通过参数event.detail.value来获取传递参数并赋值给parCount:

Page({
  data: {
    parCount:2
   },
   // 自定义父组件函数
   transferFucntion(event){
    console.log("父组件中传参事件触发!"),
    console.log(event.detail),
    this.setData({
      parCount:event.detail.value
    })
  }
  }
)

最终实现效果,点击按钮,子组件中subCount与parCount同步变化.
在这里插入图片描述

3.获取组件对象实例:父组件获取子组件实例对象进行参数传递

    父组件中使用this.selectComponent('子组件id选择器或是class选择器)进行获取子组件实例,进而传递参数到子组件.
演示示例:
    父组件index.wxml中创建点击事件获取子组件test中subCount值以及调用子组件的subCountAdd方法(subCount与subCountAdd均在上个案例中定义过)
    index.wxml中创建点击事件selectSubCompnet并给子组件test设置id属性和class属性:

<test id="subCompnetId" class="subCompnetClass"></test>
<button type="primary" bindtap="selectSubCompnet">点击获取子组件</button>

index.js中点击事件获取子组件实例并获取子组件属性和方法并调用:

Page({
  // 父组件选择子组件
  selectSubCompnet(){
    const subCompnet=this.selectComponent('#subCompnetId');
    console.log("subCount值:"+subCompnet.data.subCount);
    subCompnet.subCountAdd();
    console.log("调用子组件subCountAdd方法之后subCount值:"+subCompnet.data.subCount);
  }
})

点击按钮并观察控制台输出内容:
在这里插入图片描述
观察可以发现子组件subCount与subCountAdd方法均被调用;使用this.setDate即可更改子组件属性.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

惠柏新材创业板IPO过会:上半年营收9.3亿 拟募资3.4亿

雷递网 雷建平 11月28日惠柏新材料科技&#xff08;上海&#xff09;股份有限公司&#xff08;简称&#xff1a;“惠柏新材”&#xff09;日前IPO过会&#xff0c;准备在深交所创业板上市。惠柏新材计划募资3.42亿元&#xff0c;其中&#xff0c;1.8亿元用于上海帝福3.7万吨纤维…

xss-labs/level9

这一关界面感觉跟上一关很像 所以我们注入上一关的为编码的答案 javascript:alert(xss) 没能弹窗 查看源代码 他说我输入的链接不合法 我压根没有输入链接 我觉得后台应该是做了一个条件的判断 应该是要有链接才会在第二处输出点回显我们的输入 根据上面的猜测 我们构造如下…

网络的根基

hi 大家好&#xff0c;上个周末带小伙伴&#xff0c;一起复习了一遍网络协议&#xff0c;对网络协议的核心知识进行梳理&#xff0c;希望大家早日掌握这些核心知识&#xff0c;打造自己坚实的基础&#xff0c;为自己目标慢慢积累&#xff0c;等到自己春天的到来。详细点击查看…

设计模式学习笔记

文章目录23种设计模式学习笔记1.创建型模式1 单例模式2 工厂模式3 抽象工厂模式4 建造者模式5 原型模式2.结构型模式6 代理模式7 适配器模式8 桥接模式9 装饰模式10 外观模式11 组合模式12 享元模式3.行为型模式13 策略模式14 观察者模式15 责任链模式16 模板模式17 状态模式18…

Maven程序 tomcat插件安装与web工程启动

第一步&#xff1a;在mvnrepository库中找到tomcat插件 1.打开mvnrepository官网&#xff0c;搜索“tomcat maven”向下滑动找到“org.apache.tomcat.maven ”点进去 2.在这里点第一个“Apache Tomcat Maven Plugin :: Tomcat 7.x” 3.在这里选择2.1版本相对来说比较稳定 4.复…

jsp393学生宿舍管理系统mysql

两个权限 管理员和 学生 1. 学生信息管理 添加学生信息&#xff08;学生号&#xff0c;姓名 院系 班级入学日期 &#xff09;修改学生信息 学生退宿舍&#xff08;可以删除指定的学生也可以成批删除&#xff09; 2. 宿舍信息管理 宿舍的基本信息&#xff08;公寓数 宿舍…

DSP-数字滤波器的结构

目录 基本结构块: 例&#xff1a; 一些特殊结构&#xff1a; 无延时回路问题&#xff1a; 规范和非规范结构&#xff1a; 等效结构&#xff1a; FIR滤波器的基本结构 &#xff1a; 直接型&#xff1a; 级联型&#xff1a; 多相型: 线性相位FIR结构: 基本IIR滤波器结…

模拟可执行的四旋翼模型——在未知环境下运动规划应用研究(Matlab代码实现)

1 概述 无人机现在利用最佳搜索策略&#xff0c;使用PRISM模型检查器生成&#xff0c;以寻找目标。本文设计并编写了一种对抗性模式搜索算法来比较性能。 四旋翼无人机由于具有可悬停,可垂直起降,在设计速度范围内向任意方向飞行的运动特点,以及结构简单,构造容易,成本低廉等…

解析异常SAXParseExceptionis如何处理

1.问题背景 今天一位同事找我寻求帮助&#xff0c;售后向他反馈的问题不知道如何排查&#xff0c;他尝试分析服务器端日志文件&#xff0c; 但是日志文件中并没有报错信息&#xff0c;查询源码时候发现&#xff0c;报错信息被try...catch处理 2.排查过程 顺便提一句&#xff…

微服务框架 SpringCloud微服务架构 4 Ribbon 4.3 饥饿加载

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构4 Ribbon4.3 饥饿加载4.3.1 饥饿加载4.3.2 总结4 Ribbon 4.3 饥饿加载 4…

实验四-----数据库

一、实验目的 1.理解SQL 的视图以及与基本表的区别&#xff1b; 2.掌握SQL 视图的定义、查询、更新&#xff1b; 二、实验环境 1&#xff0e;实验室名称&#xff1a;软件实验室 2&#xff0e;主要仪器设备&#xff1a;PC机、SQL Server2008环境 三、实验内容 1.对学生数据…

阿里云服务器ECS共享型和企业级是什么?

阿里云服务器分为企业级和共享型&#xff0c;企业级具有高性能、稳定计算能力和平衡网络性能的特点&#xff0c;共享型云服务器采用非绑定CPU调度模式&#xff0c;每个vCPU会被随机分配到任何空闲CPU超线程上&#xff0c;不同实例vCPU会争抢物理CPU资源&#xff0c;并导致高负载…

前端策略模式:react hooks 表单验证

react hooks 表单验证—策略模式 1.前置知识概述 策略模式的定义 定义一系列的算法&#xff0c;把它们一个个封装起来&#xff0c;并且使它们可以相互替换&#xff0c;策略模式的目的就是将算法的使用与算法的实现分离开来&#xff0c;避免使用多重条件判断。 策略类封装了具…

Day14--商品详情-渲染商品导航区域

1.渲染商品导航区域 我的操作&#xff1a; 1》在UI结构处加上一个展示的位置 2》在data中写配置项 官方文档&#xff1a; 我的书写&#xff1a; 3》补齐其UI结构在1》中的留存的位置上 4》看看效果图&#xff1a; 5》美化其样式【固定定位】 ******************************…

WinCC通过OPCUA链接Kepware(WinCC作为客户端)

OpcUaServerWinCC服务暂停导致WinCC OPCUA功能不能使用 解决方法: 第一步 下载 连通包 connectivity pack 第二步 使用 Sim_EKB_Install_2017_06_03.exe 授权 connectivity 对应版本号 第三步 运行起来WinCC,查看OpcUaServerWinCC服务是否启动,否则重启。 网上关于OPCUA配置…

七客咖啡50店齐开,拓展咖啡赛道

疫情似乎成了餐饮界品牌的篦子&#xff0c;它检验着品牌的强弱及面对突发状况时的应对能力&#xff0c;从2020年至今&#xff0c;不少品牌都关门以求自保或直接破产。然而&#xff0c;七客咖啡却在6月3号微博发文宣布再开50家门店&#xff0c;具体在上海、武汉、成都、广州等地…

Spark系列之Spark应用程序运行机制

title: Spark系列 第六章 Spark应用程序运行机制 6.1 Spark的基本运行流程 Spark任务的核心执行流程主要分为四大步骤&#xff1a; Driver工作&#xff1a;Build DAG DAGScheduler工作&#xff1a;Split DAG to Stage TaskScheduler工作&#xff1a;Change Stage to TaskSet…

java成神之路-基础篇

java成神之路-基础篇 最近关注了个 主播&#xff0c;Hollis 阿里巴巴的一位专家&#xff0c;该博主总结了一份java成神之路的知识图谱&#xff0c;基于图谱打算出 几期总结文档也有助于自己巩固与学习。于是有了这篇文章。 图谱有着么几个阶段&#xff0c;附件我放到资源里 基…

最全面的SpringMVC教程(三)——跨域问题

前言 本文为 【SpringMVC教程】跨域问题 相关内容介绍。当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同时&#xff0c;就会产生跨域。那么究竟什么是跨域&#xff0c;跨域问题该如何解决&#xff0c;本文具体将对同源策略&#xff0c;什么是跨域&#xff0…

Kvaser Leaf light HS v2 | 如何使用Excel发送和接收CAN报文数据

从1980年代&#xff0c;Kvaser就开始CAN产品的研发&#xff0c;在相关产品开发领域有近40多年的经验&#xff0c;对CAN和相关总线技术有着非常深入的研究。我们将分享一些有趣的发现和一些特定情况的技术处理&#xff0c;欢迎关注❤️广州智维电子科技有限公司❤️&#xff01;…