1.概念:数据监听器用于监听和响应任何属性和数据字段的变化,从而执行特定的操作。它的作用类似于 vue 中的 watch 侦听器。在小程序组件中,数据监听器的基本语法格式如下:

Component({observers: {'字段A,字段B':function(字段A的新值,字段B的新值){// 要进行的操作}},
})

2.用法:以一个简单的加法为例

首先我们在组件UI中这样定义:

<view>{{n1}} + {{n2}} = {{sum}}</view>
<button bindtap="AddN1">+1</button>
<button bindtap="AddN2">+1</button>

然后在组件.js文件中这样写:

Component({/*** 组件的初始数据*/data: {n1:0,n2:0,sum:0},/*** 组件的方法列表*/methods: {AddN1(){this.setData({n1: this.data.n1 + 1})},AddN2(){this.setData({n2: this.data.n2 + 1})},},observers:{'n1,n2':function(New1,New2){   //监听n1,n2的数据变化this.setData({sum: New1 + New2  //通过监听器,自动计算sum的变化})}}
})

最后在页面中通过标签的方式调用:

<my-test></my-test>

效果如下图:

   ​

 

 3.监听对象中属性的变化

当要监听的对象中的属性时,用法其实也类似:

数据监听器的基础知识就这么多了,最后附上一个小案例,通过按钮来改变颜色

4.案例

首先新建一个文件,这里以test2为例,然后通过新建Component一键生成文件

组件的UI代码如下:

<view style="background-color: rgb({{fullcolor}});" class="box">颜色是:{{fullcolor}}</view>
<button size="mini" type="default" bindtap="changeR">R</button>
<button size="mini" type="primary" bindtap="changeG">G</button>
<button size="mini" type="warn" bindtap="changeB">B</button>

组件样式代码:

.box{line-height: 200px;color: #fff;text-align: center;font-size: 24rpx ;text-shadow: 0rpx 0rpx 2rpx black;
}

组件的js代码:

// component/test2/test2.js
Component({/*** 组件的属性列表*//*** 组件的初始数据*/data: {rgb: {r: 0,g: 0,b: 0},fullcolor: '0,0,0'},/*** 组件的方法列表*/methods: {randomColor() {this.setData({rgb: {r: Math.floor(Math.random() * 256),g: Math.floor(Math.random() * 256),b: Math.floor(Math.random() * 256)}})},changeR() {this.setData({'rgb.r': this.data.rgb.r + 5 > 255 ? 255 : this.data.rgb.r + 5})},changeG() {this.setData({'rgb.g': this.data.rgb.g + 5 > 255 ? 255 : this.data.rgb.g + 5})},changeB() {this.setData({'rgb.b': this.data.rgb.b + 5 > 255 ? 255 : this.data.rgb.b + 5})}},observers: {'rgb.**': function (obj) {this.setData({fullcolor: `${obj.r},${obj.g},${obj.b}`})},},pageLifetimes: {show() {this.randomColor()}}
})

最后在页面中通过标签使用

<test2></test2>

效果如下:

可以通过R、G、B三个按钮改变上面view的颜色

微信小程序自定义组件——数据监听器相关推荐

  1. 微信小程序自定义组件数据、方法和属性

    一 data 数据 在小程序组件中,用于组件模板渲染的私有数据,需要定义到 data 节点中,示例如下. Component({ /** * 组件的初始数据 */ data: { count: 0 } ...

  2. 微信小程序自定义组件-树形数据表格(进阶版)

    前言 一.下载引用 二.使用treegrid组件 三.使用文档 属性 事件 四.组件源码 利用递归思想编写的表格行--treegrid-treeline 树形表格--treegrid-treegrid ...

  3. 一步步教你实现微信小程序自定义组件

    一步步教你实现微信小程序自定义组件 更新时间:2022年03月21日 11:12:34   作者:naluduo233 之前做小程序开发的时候,对于开发来说比较头疼的莫过于自定义组件了,下面这篇文章主 ...

  4. 微信小程序自定义组件方案

    前言:小程序已于11月初开放了小程序组件功能,但事件方面还不是很完善,有的组件暂时可能还是要用其他方式来实现,这里简单记录下开发小程序自定义组件的要点. 在小程序官方开发组件开发功能之前,自定义组件的 ...

  5. 微信小程序自定义组件,提示组件

    微信小程序自定义组件,这里列举了一个常用的提示自定义组件,调用自定义组件中的方法和字段.仅供参考和学习. 编写组件: 在根目录下添加"components"目录,然后像添加Page ...

  6. 微信小程序--自定义组件(超详细 从新建到使用)

    微信小程序–自定义组件 微信小程序官网介绍! 本文提供给急需使用自定义组件人群,以下是博主个人理解和案例!可以辅助官网来看 介绍: 从小程序基础库版本 1.6.3 开始,小程序支持简洁的组件化编程.所 ...

  7. 微信小程序自定义组件子传父详解(多图)

    微信小程序自定义组件子传父详解 前言: 刚开始为了测试父传子,所以把页面的数组放在了父组件中 1. 然而子组件中绑定的自定义点击事件依然放在子组件的js文件中 2. 所以就会出现我们点击页面的文字能改 ...

  8. 微信小程序自定义组件的基本使用

    微信小程序自定义组件的基本使用 组件与模块类似,实现了功能的复用,提高开发速率,减少代码量 在开发过程中 , 总会遇到一些功能板块是相同或很类似的 .如两个不同页面都有搜索框 , 或者 导航栏等 . ...

  9. 小程序组件onload_微信小程序自定义组件(一)

    好吧,突然发现学不完了,一下子,那就分开吧,由于时间太久,直接重新大致复习了一下 微信小程序自定义组件 微信小程序支持自定义组件 下方的目录 其中,components为组件目录,nodemodule ...

最新文章

  1. 20200930 《计算感知》第1节课 笔记
  2. what happened after a template is selected in Create with template button
  3. ES6 (总结篇二)
  4. pat 乙级 1030 完美数列(C++)
  5. 《DeepLearning.ai 深度学习笔记》发布,黄海广博士整理
  6. 使用Power Manager设置自动关闭Mac
  7. 好烦,一封报警邮件,大量服务节点 redis 响应超时,又得要捉“虫”!
  8. length属性,length()方法和size()的方法的区别
  9. 层次分析法模型(数学建模学习)
  10. 虚拟机修改默认SSH端口号为10022
  11. 歌唱比赛报名php源码,2021东方音乐挑战赛正式官宣发布 歌唱比赛音乐选秀节目全球报名招募...
  12. pacemaker corosync 概念
  13. 【JAVA长虹键法】第五式 抽象工厂模式(23种设计模式)
  14. QT-Linux安装
  15. linux防火墙关闭 重启 开启、防火墙开放端口
  16. Binary_Search(二叉树搜索---------二分)
  17. android studio中的文本替换
  18. vue3+vuetify安装
  19. 图像处理与分析--国内公司就业
  20. 四川岳池2021年高考成绩查询,2021年岳池中学升学率高不高?

热门文章

  1. C# 阿里云Redis存储服务 使用总结
  2. Java本地远程服务器debug调试详解
  3. Python数据可视化 Pyecharts 制作 Effectscatter 涟漪散点图
  4. 向量的点乘(内积、点积)
  5. 社区资讯 | Apache Flink 中文社区网站 Ververica 正式发布
  6. 老婆过生日,随写游戏一只,祝生日快乐。
  7. 样本数据异常值处理的三种方法
  8. 小程序界面渲染数据计算 小程序界面渲染保留小数
  9. 小程序测试--微信组件bug
  10. HS6621 串口透传 模式 - [详解]