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

【微信小程序】自定义组件 - 数据监听器

1. 什么是数据监听器

在这里插入图片描述
在这里插入图片描述

2. 数据监听器的基本用法

组件的 UI 结构如下:
在这里插入图片描述
组件的 .js 文件代码如下:
在这里插入图片描述

3. 监听对象属性的变化

在这里插入图片描述
在这里插入图片描述

数据监听器 - 案例

  1. 案例效果
    在这里插入图片描述

2. 渲染 UI 结构

在这里插入图片描述

3. 定义 button 的事件处理函数

在这里插入图片描述

4. 监听对象中指定属性的变化

在这里插入图片描述

5. 监听对象中所有属性的变化

在这里插入图片描述
在这里插入图片描述

我的代码

<!--components/rgb/rgb.wxml-->
<!-- <view class="colorBox" style="background-color:rgb({{rgb.r}},{{rgb.g}},{{rgb.b}})">{{rgb.r}},{{rgb.g}},{{rgb.b}}</view> -->
<view class="colorBox" style="background-color:rgb({{fullColor}})">{{rgb.r}},{{rgb.g}},{{rgb.b}}</view>
<button size="mini" bindtap="changR">R</button>
<button size="mini" bindtap="changG">G</button>
<button size="mini" bindtap="changB">B</button>
// components/rgb/rgb.js
Component({/*** 组件的属性列表*/properties: {},/*** 组件的初始数据*/data: {rgb:{r:0,g:0,b:0},fullColor:''},/*** 组件的方法列表*/methods: {changR(){this.setData({'rgb.r':this.data.rgb.r<255?this.data.rgb.r+5:255})},changG(){this.setData({'rgb.g':this.data.rgb.g<255?this.data.rgb.g+5:255})},changB(){this.setData({'rgb.b':this.data.rgb.b<255?this.data.rgb.b+5:255})},},observers:{'rgb.**':function(newRgb){this.setData({fullColor:`${newRgb.r},${newRgb.g},${newRgb.b}`})console.log(this.data.fullColor);} }
})

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Qt Creator安装配置指南
  • 【运维项目经历|041】上云项目-物理机迁移到阿里云
  • 【秋招笔试】8.18大疆秋招(第三套)-三语言题解
  • Zotero 常用插件介绍
  • USRP:Link 22 战术数据链
  • Linux随记(十一)(部署flink-1.16.3、jdk-11.0.19、zookeeper-3.4.13、kafka_2.12-2.2.2)
  • 怎样把经典CAD工具栏调出来
  • 地平线—征程2(Journey 2-J2)芯片详解(11)—CPU+CoreSight
  • windows下的redis7.0.11的下载
  • 《AI视频类工具之五——​ 开拍》
  • 如何使用GPT-SoVITSS生成各种角色的语言
  • 金山云Q2调整后EBITDA率提升至3.2% 高质量发展驱动经营质效双增
  • 为什么使用npm安装vue时,在vue/dist目录下没有产生vue.js文件呢
  • JS逆向proxy代理
  • 经纬恒润亮相第四届焉知汽车年会,功能安全赋能域控
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【个人向】《HTTP图解》阅后小结
  • ES2017异步函数现已正式可用
  • Fabric架构演变之路
  • git 常用命令
  • Java新版本的开发已正式进入轨道,版本号18.3
  • Linux快速复制或删除大量小文件
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • Redis在Web项目中的应用与实践
  • STAR法则
  • 半理解系列--Promise的进化史
  • 从PHP迁移至Golang - 基础篇
  • 给初学者:JavaScript 中数组操作注意点
  • 前端学习笔记之观察者模式
  • 新版博客前端前瞻
  • 硬币翻转问题,区间操作
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • ​Python 3 新特性:类型注解
  • ​水经微图Web1.5.0版即将上线
  • # windows 安装 mysql 显示 no packages found 解决方法
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • $L^p$ 调和函数恒为零
  • %check_box% in rails :coditions={:has_many , :through}
  • (16)Reactor的测试——响应式Spring的道法术器
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (LeetCode) T14. Longest Common Prefix
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (二十四)Flask之flask-session组件
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (利用IDEA+Maven)定制属于自己的jar包
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (自用)网络编程
  • .net(C#)中String.Format如何使用
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET是什么
  • @NoArgsConstructor和@AllArgsConstructor,@Builder