【微信小程序】-- 自定义组件 - 数据监听器 (三十四)
创始人
2024-06-01 14:22:19
0

请添加图片描述

  • 💌 所属专栏:【微信小程序开发教程】

  • 😀 作  者:我是夜阑的狗🐶

  • 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询!

  • 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘

文章目录

  • 前言
  • 一、数据监听器
      • 1、什么是数据监听器
      • 2、数据监听器的基本用法
      • 3、监听对象属性的变化
  • 总结


前言

  大家好,又见面了,我是夜阑的狗🐶,本文是专栏【微信小程序开发教程】专栏的第34篇文章;
  今天开始学习微信小程序的第18天💖💖💖,开启新的征程,记录最美好的时刻🎉,每天进步一点点。
  专栏地址:【微信小程序开发教程】, 此专栏是我是夜阑的狗微信小程序开发过程的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
  如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。


一、数据监听器

  前面已经学习自定义组件 - 数据、方法和属性,通过栗子了解到自定义组件中 data 属性 和 methods 方法的使用,以及 data 和 properties 的区别。接下来就来讲解一下另外一个自定义组件 - 数据监听器。话不多说,让我们原文再续,书接上回吧。

请添加图片描述

1、什么是数据监听器

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

Component({observers: {'n1, n2': function(n1, n2){this.setData({sum: n1 + n2})}},
})

  其中 n1,n2 为监听字段,形参n1,n2也是前面字段的新值。

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

  了解到数据监听语法之后,通过下面的栗子来学习一下,首先对组件进行全局引用,具体代码如下所示:

app.json

{"usingComponents":{"my-test1": "/components/test1/test1","my-test2": "/components/test2/test2"},
}

test2.wxml

  组件的 UI 结构如下:

components/test2/test2.wxml
{{num1}} + {{num2}} = {{sum}}


test1.js

  组件的 .js 文件,监听多个字段用逗号隔开即可。

Component({/*** 组件的初始数据*/data: {num1: 0,num2: 0,sum: 0,},/*** 组件的方法列表*/methods: {addN1 (){this.setData({num1 : this.data.num1 + 1});},addN2 (){this.setData({num2 : this.data.num2 + 1});},},observers: {// 监听 num1 和 num2 数据的变化'num1, num2': function(newnum1, newnum2){// 通过监听器自动计算 sum 的值this.setData({sum: newnum1 + newnum2});}},
})

message.wxml

  使用 my-test2 组件。


  此时当点击按钮让属性 num1 或者 num2 自加时,就会触发数据监听器,从而计算出 sum 的值,可以来看一下运行效果:

在这里插入图片描述

3、监听对象属性的变化

  前面只对单个数据进行了监听,此外数据监听器还支持监听对象中单个或多个属性的变化,基本语法格式如下:

Component({observers: {// 监听 r 、 g 和 b 数据的变化'rgb.r, rgb.g, rgb': function(r, g, b){this.setData({fullColor: `${r},${g},${b}` // 注意:这里反引号});}},
})

  其中,触发该监听器有三种情况:

  • 使用 setData 设置 this.data.rgb.r 时触发。
  • 使用 setData 设置 this.data.rgb.g 时触发。
  • 直接为对象赋值,使用 setData 设置 this.data.rgb 时触发。

  下面通过一个栗子来了解一下,具体代码如下所示:

test2.wxml

--------------------
rgb颜色值: {{rgb.r}} {{rgb.g}} {{rgb.b}}


test1.js

  组件的 .js 文件,监听多个字段用逗号隔开即可。

Component({/*** 组件的初始数据*/data: {rgb: {r: 0, g: 0, b: 0}},/*** 组件的方法列表*/methods: {rN1 (){this.setData({'rgb.r': this.data.rgb.r + 1});},gN1 (){this.setData({'rgb.g': this.data.rgb.g + 1});},bN1 (){this.setData({'rgb.b': this.data.rgb.b + 1});}},observers: {'rgb.r, rgb.g': function(r, g){this.setData({// fullColor: `${r},${g},${b}`sum: r + g});}},
})

  当点击按钮让 r 和 g 进行累加时,就会触发数据监听,从而更新 sum 值。而点击让 b 累加时,是不会触发数据监听的,可以来看一下运行效果:

在这里插入图片描述


总结

  感谢观看,这里就是自定义组件 - 数据监听器的介绍使用,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹 🌹 🌹

在这里插入图片描述

  也欢迎你,关注我。👍 👍 👍

  原创不易,还希望各位大佬支持一下,你们的点赞、收藏和留言对我真的很重要!!!💕 💕 💕 最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!下期再见。🎉

更多专栏订阅:

  • 😀 【LeetCode题解(持续更新中)】
  • 🚝 【Java Web项目构建过程】
  • 💛 【微信小程序开发教程】
  • 【JavaScript随手笔记】
  • 🤩 【大数据学习笔记(华为云)】
  • 🦄 【程序错误解决方法(建议收藏)】
  • 🚀 【软件安装教程】



订阅更多,你们将会看到更多的优质内容!!

相关内容

热门资讯

安卓系统能不能,可以。 你有没有想过,安卓系统到底能不能?这个问题,就像是在问一个老朋友,他是不是真的懂你。安卓系统,这个陪...
安卓系统恢复误删视频,轻松找回... 手机里的视频突然不见了,是不是你也遇到了这样的尴尬情况?别急,今天就来教你如何用安卓系统恢复误删的视...
华为安卓系统的siri,华为安... 你知道吗?华为最近在安卓系统上搞了个大动作,那就是推出了自己的Siri——华为助手。这可真是让人眼前...
wp模拟安卓系统界面,畅游虚拟... 你有没有想过,在电脑上也能体验到安卓系统的流畅与便捷呢?没错,这就是今天我要跟你分享的神奇小玩意——...
安卓系统的开发团队,谷歌开发团... 你知道吗?在科技的世界里,有一个团队可是默默无闻地创造了无数奇迹,他们就是安卓系统的开发团队。这个团...
俄语流利说安卓系统,轻松掌握俄... 你有没有想过,学习一门新语言竟然可以变得如此轻松有趣?没错,我要给你安利一款神器——俄语流利说安卓系...
安卓P系统原装铃声,唤醒科技之... 你有没有发现,手机里的那些原装铃声,有时候比我们自己的手机铃声还要动听呢?尤其是安卓P系统的原装铃声...
稳定无广告安卓系统,探索稳定无... 你有没有想过,手机系统就像是我们生活的环境,有时候干净整洁,有时候却满是杂乱无章的广告?今天,我要给...
安卓系统隔离运行app,技术革... 你知道吗?在智能手机的世界里,安卓系统可是个超级明星呢!它不仅功能强大,而且兼容性极好,几乎所有的手...
佳博3120安卓系统,引领移动... 你有没有听说过佳博3120安卓系统?这款设备最近可是火得一塌糊涂呢!想象一台集成了安卓系统的打印机,...
安卓系统放音乐全屏,沉浸式听觉... 你有没有发现,用安卓手机放音乐的时候,有时候屏幕会自动全屏显示,这可真是挺有趣的。你知道吗?这个小小...
安卓子系统是win,基于Win... 你知道吗?在科技的世界里,总是充满了惊喜和未知。今天,我要给你揭秘一个你可能没听说过的秘密:安卓子系...
金刚导航升级安卓系统,畅享智能... 你知道吗?最近金刚导航可是来了一次大变身呢!没错,就是那个我们平时出行时离不开的导航神器——金刚导航...
安卓系统有话筒软件,畅享便捷沟... 你有没有发现,手机里的安卓系统里竟然藏着这么一个神奇的小玩意儿——话筒软件!没错,就是那个可以让你随...
安卓备份系统版本更新,版本更新... 你知道吗?最近安卓备份系统又来了一次大更新,这可真是让人兴奋不已呢!想象你的手机备份功能变得更加智能...
htc怎么降级安卓系统,轻松恢... 你有没有发现,有时候手机系统更新后,新功能虽然多了,但速度却慢了下来,甚至有些功能还不太好用?这不,...
索尼电视安卓系统优点,畅享无限 亲爱的电视迷们,你是否在寻找一款既能满足你对画质追求,又能让你畅享智能生活的电视呢?今天,就让我带你...
智能驭领系统安卓,引领未来智能... 你有没有发现,最近手机界又掀起了一股热潮?没错,就是那个让人眼前一亮的智能驭领系统安卓!今天,就让我...
安卓u15.1系统,功能升级与... 你有没有发现,最近你的安卓手机更新到了U15.1系统?别小看了这个小小的升级,它可是带来了不少惊喜呢...
安卓系统坐标软件下载,下载与使... 你有没有想过,在手机上精准定位,是不是就像拥有了超级英雄的技能呢?想象无论你是想找到那个隐藏在街角的...