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

微信小程序--27(自定义组件4)

一、父子组件之间通信的3种方式

1、属性绑定

用于父组件向子组件的只当属性设置数据,但只能设置JSON兼容的数据

2、事件绑定

用于子组件向父组件传递数据,可以传递任意数据

3、获取组件实例

父组件还可以通过this.select Component()获取子组件的实例对象,这可直接访问子组件的任意数据和方法

二、属性绑定

属性绑定用于实现父向子传值,而且只能传递普通类型的数据,无法将方法传递给子组件

示例:

1、先创建一个组件test5,在component文件目录下

2、在wxml文件中进行属性绑定

home.wxml文件中,父组件的中count值
<test5 count="{{count}}"></test5>
<view>父组件中,count的值是:{{count}}</view>
//test5.js文件中,指定count的类型
properties:{count:Number
}
test5.wxml文件中count的值,并实现子组件count值自增<view>子组件中count的值是:{{count}}</view>
<button bindtap="addcount">+1</button>
test.js文件中,实现自增
methods:{addcount(){this.setData({count:this.properties.count+1
})
}}

会发现count自增并没有同步到父组件当中,这里我们要用到事件绑定事件。

三、事件绑定

用于子组件向父组件传递数据,可以传递任意数据。

使用步骤如下:

  1. 在父组件的js中,定义一个函数,这个函数即将通过自定义事件的形式,传递给子组件
  2. //home.js文件中syncCount(e){console.log(e)
    })
  3. 在父组件的wxml中,通过自定义时间的形式,将步骤1定义的函数引用,传递给子组件
  4. home.wxml文件中,父组件的中count值
    <test5 count="{{count}}"  bind:sync="syncCount"></test5>
    <view>父组件中,count的值是:{{count}}</view>
  5. 在子组件的js文件中,调用this.triggerEvent(‘自定义事件的名称',{/*参数对象*/}),将数据发送到父组件
  6. test.js文件中,实现自增,触发自定义事件将数值同步给父组件
    methods:{addcount(){this.setData({count:this.properties.count+1
    })this.triggerEvent('sync',{value:this.properties.count})
    }}
  7. 在父组件的js中,通过e.detail获取到子组件传递过来的数据
  8. //home.js文件中syncCount(e){this.setData({
    count:e.detail.value
    })

 

 四、获取组件实例

可在父组件里调用this.selectComponent('id或者class选择器'),获取子组件的实例对象,从而直接访问子组件的任意数据和方法,调用时需要传入一个选择器。

home.wxml文件
<test5 count="{{count}}"  bind:sync="syncCount" class="custom"  id="cA"> </test5>
<button bindtap="getChild">获取子组件实例</button>
//home.js文件中
getChild(){const child = this.selectComponent('custom')
child.setData({count:child.properties.count+1})
child.addCount()
},

相关文章:

微信小程序--27(自定义组件4)

一、父子组件之间通信的3种方式 1、属性绑定 用于父组件向子组件的只当属性设置数据&#xff0c;但只能设置JSON兼容的数据 2、事件绑定 用于子组件向父组件传递数据&#xff0c;可以传递任意数据 3、获取组件实例 父组件还可以通过this.select Component()获取子组件的实…...

Linux | Linux进程万字全解:内核原理、进程状态转换、优先级调度策略与环境变量

目录 1、从计算机组成原理到冯诺依曼架构 计算机系统的组成 冯诺依曼体系 思考&#xff1a;为什么计算机不能直接设计为 输入设备-CPU运算-输出设备 的结构&#xff1f; 2、操作系统(Operator System) 概念 设计OS的目的 描述和组织被管理对象 3、进程 基本概念 进程id和父进程…...

VBA技术资料MF184:图片导入Word添加说明文字设置格式

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…...

在函数设计中应用单一职责原则:函数分解与职责分离

在函数设计中应用单一职责原则&#xff1a;函数分解与职责分离 引言 单一职责原则&#xff08;Single Responsibility Principle, SRP&#xff09;是面向对象设计原则中的核心原则之一&#xff0c;强调一个类或函数应该只有一个责任或理由去改变。在函数设计中&#xff0c;应…...

多线程锁机制面试

目录 乐观锁的底层原理 ReentrantLock的实现原理 读写锁 ReentrantReadWriteLock synchronized 底层原理 Lock和synchronized的区别 乐观锁的底层原理 版本号机制 在数据库表中添加一个版本号字段&#xff08;如 version&#xff09;&#xff0c;每次更新数据时都会将版本号…...

《SQL 中计算地理坐标两点间距离的魔法》

在当今数字化的世界中&#xff0c;地理数据的处理和分析变得越来越重要。当我们面对一个包含地理坐标数据的表时&#xff0c;经常会遇到需要计算两点之间距离的需求。无论是在物流配送路线规划、地理信息系统应用&#xff0c;还是在基于位置的服务开发中&#xff0c;准确计算两…...

微服务可用性设计

一、隔离 对系统或资源进行分割&#xff0c;实现当系统发生故障时能限定传播范围和影响范围。进一步的&#xff0c;通过隔离能够降低系统之间得耦合度&#xff0c;使得系统更容易维护和扩展。某些业务场景下合理使用隔离技巧也能提高整个业务的性能。我理解隔离本质就是一种解…...

【扒代码】dave readme文档翻译

jerpelhan/DAVE (github.com) 摘要 低样本计数器估算选定类别对象的数量&#xff0c;即使在图像中只有少量或没有标注样本的情况下。目前最先进的技术通过对象位置密度图的总和来估算总数量&#xff0c;但这种方法无法提供单个对象的位置和大小&#xff0c;这对于许多应用来说…...

c语言---文件

这一节我准备分三个部分来带领大家了解文件 ——一、有关文件的基础知识 ————二、文件的简单操作 ————————三、文件结束的判定 ————————————四、文件缓冲区 一、文件的基础知识&#xff1a; 首先在了解文件之前&#xff0c;我们需要了解C/C程序内存…...

Windows系统下Go安装与使用

step1&#xff1a; 下载go语言SDK 下载地址&#xff1a;https://go.dev/dl/ 下载后选择合适位置安装即可&#xff0c;我选择D盘 在安装完成后&#xff0c;可以通过go env 命令检测是否安装成功。在“命令提示符”界面输入“go env”命令&#xff0c;如果显示如下类似结果则说明…...

day24-测试之接口测试基础

目录 一、接口的定义 二、接口的优点 三、API接口 四、接口测试流程 五、网络基础概念 六、HTTP和RURL 七、get和post请求 八、数据格式 九、状态码 十、restful风格 十一、接口工具 一、接口的定义 程序之间协作所要遵循的一套规范、标准 二、接口的优点 2.1.责任…...

TSN 交换机

TSN&#xff08;Time-Sensitive Networking&#xff09;交换机是一种支持时间敏感网络协议的网络交换设备&#xff0c;用于在以太网网络中实现低延迟、高确定性的数据传输。TSN 是一组 IEEE 802 标准的集合&#xff0c;旨在通过标准化的方式&#xff0c;将传统的以太网扩展到需…...

针对thinkphp站点的漏洞挖掘和经验分享

0x1 前言 浅谈 目前在学习和研究thinkphp相关漏洞的打法&#xff0c;然后最近对于thinkphp资产的收集方面有了一个简单的认识&#xff0c;然后写一篇新手看的thinkphp相关的漏洞收集和挖掘的文章来分享下。然后后面是给师傅们分享下后台文件上传&#xff0c;然后直接打一个ge…...

MySQL数据库入门,pycharm连接数据库—详细讲解

一.安装MySQL 1.常用MySQL5.7&#xff0c;首先安装MySQL&#xff0c; &#xff08;一&#xff09; &#xff08;二&#xff09; &#xff08;三&#xff09; &#xff08;四&#xff09; &#xff08;五&#xff09; 2.配置环境变量 打开MySQL安装路径&#xff0c;在其中找到…...

.bat文件快速运行vue项目

如何使用bat文件快速运行vue项目&#xff1f; 新建个文件&#xff0c;改名为serve.bat。 在文件中写入以下内容&#xff1a; # cd 项目路径 cd D:\projects\xxx npm run serve pausecd 项目所在的路径 npm run dev/serve &#xff0c;取决于项目的启动方法&#xff0c;打…...

数据结构(邓俊辉)学习笔记】优先级队列 07——堆排序

1.算法 作为完全二叉堆的一个应用&#xff0c;这节来介绍堆排序算法。 是的&#xff0c;谈到优先级队列&#xff0c;我们很自然地就会联想到排序。因为就其功能而言&#xff0c;包括完全二叉堆在内的任何一种优先级队列都天生地具有选取功能&#xff0c;也就是选取其中的最大…...

npm install pnpm -g 报错的解决方法

npm install pnpm -g 报错的解决方法 npm error code ETIMEDOUT npm error errno ETIMEDOUT npm error network request to https://registry.npmjs.org/pnpm failed, reason: npm error network This is a problem related to network connectivity. npm error network In mo…...

集师知识付费小程序开发

智慧生活&#xff0c;从选择一款优质知识付费小程序起航 在这个信息爆炸的时代&#xff0c;知识成为了最宝贵的财富。我们渴望不断学习&#xff0c;提升自我&#xff0c;追求更高品质的生活。而一款优质的知识付费小程序&#xff0c;就如同照亮前行道路的明灯。 它是知识的宝库…...

前端开发提效工具——用户自定义代码片段

做开发总是会有大量的代码要写&#xff0c;但是有时候某些代码是非常基础但是很多&#xff0c;我们就可以把这一部分整合起来&#xff0c;使用一个很简短的关键字来快速唤出。 如何新建这样的代码段&#xff1f; 1.在VSCode当中找到Snippets&#xff0c;然后点击 2.之后会弹出…...

docker容器安全加固参考建议——筑梦之路

这里主要是rootless的方案。 在以 root 用户身份运行 Docker 会带来一些潜在的危害和安全风险&#xff0c;这些风险包括&#xff1a; 容器逃逸&#xff1a;如果一个容器以 root 权限运行&#xff0c;并且它包含了漏洞或者被攻击者滥用&#xff0c;那么攻击者可能会成功逃出容器…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

从零开始了解数据采集(二十八)——制造业数字孪生

近年来&#xff0c;我国的工业领域正经历一场前所未有的数字化变革&#xff0c;从“双碳目标”到工业互联网平台的推广&#xff0c;国家政策和市场需求共同推动了制造业的升级。在这场变革中&#xff0c;数字孪生技术成为备受关注的关键工具&#xff0c;它不仅让企业“看见”设…...

机器学习的数学基础:线性模型

线性模型 线性模型的基本形式为&#xff1a; f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法&#xff0c;得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...

基于stm32F10x 系列微控制器的智能电子琴(附完整项目源码、详细接线及讲解视频)

注&#xff1a;文章末尾网盘链接中自取成品使用演示视频、项目源码、项目文档 所用硬件&#xff1a;STM32F103C8T6、无源蜂鸣器、44矩阵键盘、flash存储模块、OLED显示屏、RGB三色灯、面包板、杜邦线、usb转ttl串口 stm32f103c8t6 面包板 …...

第22节 Node.js JXcore 打包

Node.js是一个开放源代码、跨平台的、用于服务器端和网络应用的运行环境。 JXcore是一个支持多线程的 Node.js 发行版本&#xff0c;基本不需要对你现有的代码做任何改动就可以直接线程安全地以多线程运行。 本文主要介绍JXcore的打包功能。 JXcore 安装 下载JXcore安装包&a…...

使用python进行图像处理—图像滤波(5)

图像滤波是图像处理中最基本和最重要的操作之一。它的目的是在空间域上修改图像的像素值&#xff0c;以达到平滑&#xff08;去噪&#xff09;、锐化、边缘检测等效果。滤波通常通过卷积操作实现。 5.1卷积(Convolution)原理 卷积是滤波的核心。它是一种数学运算&#xff0c;…...

Cursor AI 账号纯净度维护与高效注册指南

Cursor AI 账号纯净度维护与高效注册指南&#xff1a;解决限制问题的实战方案 风车无限免费邮箱系统网页端使用说明|快速获取邮箱|cursor|windsurf|augment 问题背景 在成功解决 Cursor 环境配置问题后&#xff0c;许多开发者仍面临账号纯净度不足导致的限制问题。无论使用 16…...

河北对口计算机高考MySQL笔记(完结版)(2026高考)持续更新~~~~

MySQL 基础概念 数据&#xff08;Data&#xff09;&#xff1a;文本&#xff0c;数字&#xff0c;图片&#xff0c;视频&#xff0c;音频等多种表现形式&#xff0c;能够被计算机存储和处理。 **数据库&#xff08;Data Base—简称DB&#xff09;&#xff1a;**存储数据的仓库…...