一 组件 .js

Component({

/**

* 组件的初始数据

*/

data: {

_rgb: { // rgb 的颜色值对象

r: 0,

g: 0,

b: 0

},

fullColor: '0, 0, 0' // 根据 rgb 对象的三个属性,动态计算 fullColor 的值

},

/**

* 组件的方法列表

*/

methods: {

changeR() { // 修改 rgb 对象上 r 属性的值

this.setData({

'_rgb.r': this.data._rgb.r + 5 > 255 ? 255 : this.data._rgb.r + 5

})

},

changeG() { // 修改 rgb 对象上 g 属性的值

this.setData({

'_rgb.g': this.data._rgb.g + 5 > 255 ? 255 : this.data._rgb.g + 5

})

},

changeB() { // 修改 rgb 对象上 b 属性的值

this.setData({

'_rgb.b': this.data._rgb.b + 5 > 255 ? 255 : this.data._rgb.b + 5

})

},

_randomColor() {

this.setData({

_rgb: {

r: Math.floor(Math.random() * 256),

g: Math.floor(Math.random() * 256),

b: Math.floor(Math.random() * 256)

}

})

}

},

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

observers: {

'_rgb.**': function (obj) { // 监听 rgb 对象上 r、g、b 三个子属性的变化 如果某个对象中需要被监听的属性太多,为了方便,可以使用通配符 ** 来监听对象中所有属性的变化

this.setData({ // 为 data 中的 fullColor 重新赋值

fullColor: `${obj.r}, ${obj.g}, ${obj.b}`

})

}

}

})

二 .wxml 结构

<view style="background-color: rgb({{fullColor}});" class="colorBox">颜色值:{{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>

三 .wxss 样式

.colorBox {

line-height: 200rpx;

font-size: 24rpx;

color: white;

text-shadow: 0rpx 0rpx 2rpx black;

text-align: center;

}

四 测试效果

微信小程序数据监听器小案例相关推荐

  1. 使用proxy替代setData实现小程序 数据代理

    小程序 数据代理 微信开发工具导入项目 新建项目 -> 导入src文件 -> 预览效果 代码 proxy.js const nativePage = Pageconst nativeCom ...

  2. 微信公众号与小程序数据互通

    背景 最近做了一个有意思的功能<官网内容订阅>,用户在官网扫码后可以订阅官网栏目,订阅栏目后发送模版消息提醒用户订阅成功,模版消息关联了小程序,然后做了一个小程序来管理用户订阅的栏目,小程 ...

  3. 微信小程序前后端交互案例

    微信小程序前后端交互案例 首先声明一下,本人也是一个初学者(下面的案例可能会有很多不完整或说的不正确的,所以只能起到参考作用,千万不要拿我的话当标准). 我是纯自学,之前在前后端交互方面一直搞不懂,所 ...

  4. 微信小程序数据渲染和数据请求

    微信开放文档 数据渲染 概念:微信小程序和Vue实现理念是一致的,是基于数据驱动完成页面数据的自动化渲染.微信小程序中数据和Vue一样是响应式,即数据的更改会驱动页面进行数据的刷新. 具体操作 首先找 ...

  5. 通过思维导图带你回顾微信公开课和微信小程序数据

    [回复"1024",送你一个特别推送] 本来这篇文章应该是在前天微信公开课当天写的,但是最近实在太忙了,就一直拖到了现在.张小龙作为一个技术转型产品经理最成功的案例,其实有很多地方 ...

  6. [微信小程序]知识总结及案例汇总

    #目录 主要从以下几个方面给大家总结一下微信小程序相关的知识! ####1 前言 ####2.什么是小程序? ####3.微信小程序在微信开发中的位置? ####4.微信小程序框架–MINA #### ...

  7. Charles抓取微信小程序数据 以及 其它应用网站数据

    为了抓取小程序数据所以使用Charles来抓取,下面介绍下使用方法(mac环境下使用).使用Charles可以非常方便的抓取Http/Https请求.官方dmg下载地址:点击此处下载 Charles抓 ...

  8. 微信小程序数据拼接_微信小程序用户数据解密算法Java版

    打开官方文档,开心~ 腾讯爸爸竟然给提供了解密算法 然而我下载解压后人傻了 可能鹅厂没养Java程序猿吧 那就看这C++改造吧 public class AnthCodeVerify { privat ...

  9. 微信小程序数据统计和错误统计的实现

    某些情况下我们需要对小程序某些用户的行为进行数据进行统计,比如统计某个页面的UV, PV等,统计某个功能的使用情况等.好让产品对于产品的整个功能有所了解. 在网页里,我们很多人都用过谷歌统计,小程序里 ...

最新文章

  1. Java项目:学生考勤管理系统(java+SSM+Poi导出+Easyui+JFreeChart+maven+mysql)
  2. 金融科技公司采用大数据领先银行的三种方式
  3. linux下运行时链接库的路径顺序
  4. 记住一个道理:只要自己变优秀了,其他的事情才会跟着好起来。
  5. activity切换效果
  6. TortoiseSVN无法查看日志和SVN LOG无法查看日志的解决办法。
  7. python中的递归函数是什么_讲解Python中的递归函数
  8. java 8 新特性之日期-时间 API
  9. python连接sqlite数据库的代码_Python3实现连接SQLite数据库的方法
  10. 【Android Developers Training】 58. 缓存位图
  11. HDU 1542:Atlantis(扫描线+线段树 矩形面积并)***
  12. window.open怎么设置title_企业seo怎么优化 都有那些策略?
  13. 针对github权限导致hexo部署失败的解决方案
  14. ❤️《大前端—NPM包管理器》
  15. python发出报警声音(C#一样适用)
  16. C++学习 十五、类继承(4)基类方法重写,隐藏
  17. mac键盘锁住了怎么解决 苹果电脑键盘锁住了解决方法
  18. linux可运行的steam游戏吗,Steam现在可以在Linux上玩仅Windows游戏
  19. 量子化学计算机理,计算量子化学团队
  20. 设置jupyter notebook默认浏览器

热门文章

  1. 如果你知道10条以上,你就是知识渊博的人了哦^_^
  2. vue定义全局颜色变量
  3. python爬虫论文摘要怎么写_Python爬虫根据关键词爬取知网论文摘要并保存到数据库中【入门必学】...
  4. fcpx插件:Stupid Raisins Insta Pop(87个动画社交媒体标题)
  5. 使用AIDL+动态代理+运行时注解+反射 反手撸一套Android跨进程通信框架
  6. JS中Ajax的使用
  7. 串口通信操作STM32f4单片机LED 蜂鸣器(io)
  8. Mysql原理知识全解
  9. gps修改国内服务器,修改a-gps服务器的地址
  10. 零时科技 | Feminist Metaverse遭受攻击,损失 11 亿枚 FM