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

1. 什么是数据监听器


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

组件的 UI 结构如下:

组件的 .js 文件代码如下:

3. 监听对象属性的变化


数据监听器 - 案例

  1. 案例效果

2. 渲染 UI 结构

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

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

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


我的代码

ruby 复制代码
<!--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>
ruby 复制代码
// 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);
   } 
  }
})
相关推荐
好赞科技1 天前
2026年八大上门服务预约小程序:解锁高效生活新体验
大数据·微信小程序
维双云1 天前
从零到一:一份关于“做小程序的步骤”的完整实操指南
小程序
编程猪猪侠1 天前
uni-app微信小程序车牌号输入组件实现
微信小程序·uni-app
客场消音器2 天前
如何使用codex进行UI重构,让AI开发的前端页面不再千篇一律
前端·后端·微信小程序
打瞌睡的朱尤2 天前
微信小程序126~160
微信小程序·小程序
腾讯云云开发2 天前
小程序成长计划正式接入Hy3 preview
微信小程序
bruce541102 天前
讲讲 RTMate (WebSocket as A Service)中的消息的发布订阅机制
后端·微信小程序
我是伪码农2 天前
小程序50-75
小程序
ZC跨境爬虫2 天前
模块化烹饪小程序开发日记 Day2:全局配置与 tabBar 实现
java·前端·javascript·微信小程序·html·notepad++
好赞科技2 天前
2026年医院预约小程序三大精选:解锁智慧医疗新体验
大数据·微信小程序