05-数据绑定

前言

上一节,我们学习了如何连接阿里云并订阅topic,但是WXML页面什么也没做,本节,我们使用数据绑定方式渲染数据,将结果实时显示在主页面上。

一、基础知识

数据绑定指的是WXML 中的动态数据均来自对应 Page 的 data。通过修改Page中的data,小程序就可以自动渲染到WXML中显示效果。

数据绑定常见的类型如下:

(1) 简单数据绑定

<view> {{ message }} </view>

Page中给message赋值,直接在WXML中使用{{ }}方式获取渲染

(2) 属性数据绑定

<view id="item-{{id}}"> </view>
<view wx:if="{{condition}}"> </view>

属性数据绑定应该放在" "之内处理

(3) 关键字数据绑定

<checkbox checked="{{false}}"> </checkbox>

注意false是关键字,不是Page中data定义的字段,false表示假,true表示真

二、实例

首先讲上一节的工程复制并修改名字为05-data_bind,编写index.wxml内容如下:

<!--index.wxml-->
<view class="container">
<view>服务器状态:{{status_server}}</view>
<view class="sub">订阅状态:{{status_topic}}</view>
<button class="btn_con" type="primary" bindtap="btn_connect"> 连接服务器</button>
</view>

status_server和status_topic在index.js文件中定义:

  data: {
    productKey : "a13RXPFSBnM",
    deviceName : "FrYSFbWJi9EYHhvEa9Ln",
    deviceSecret: "xurB5FPisXGXJ2veWUvjEDZN8K9so1SJ",
    regionId: "cn-shanghai",
    status_server: "未连接",
    status_topic: "未订阅"
  },

index.wxml中button按钮类型选择primary,bindtap指定回调函数btn_connect:

 btn_connect: function() {
    this.ConnectAliyunServer();
  },

  ConnectAliyunServer(){
    var that = this
    const deviceConfig = {
      productKey  : that.data.productKey,
      deviceName  : that.data.deviceName,
      deviceSecret: that.data.deviceSecret,
      regionId    : that.data.regionId
    };
    const options = that.initMqttOptions(deviceConfig);
    // 替换productKey为你自己的产品的
    const mqttClient = mqtt.connect('wxs://a13RXPFSBnM.iot-as-mqtt.cn-shanghai.aliyuncs.com',options);
    mqttClient.on('connect', function () {
      console.log('连接服务器成功')
      that.setData({
        status_server:"已连接"
      })
      //订阅主题,替换productKey和deviceName(这里的主题可能会不一样,具体请查看后台设备Topic列表或使用自定义主题)
      var topic = '/a13RXPFSBnM/FrYSFbWJi9EYHhvEa9Ln/user/get';
      mqttClient.subscribe(topic, function (err) {
        if (!err) {
           console.log('订阅成功!');
           that.setData({
            status_topic:"已订阅"
          })
        }
      })
     mqttClient.on('message', function (topic, message){
     console.log("接收信息:" + message.toString());
    })
    })
  },

注意:连接服务器和订阅成功,会调用setData函数修改数据值,会自动渲染到小程序前端页面

  that.setData({
    status_server:"已连接"
  })

三、运行

保存后,小程序界面刷新,如下所示:
图片
点击连接服务器按钮,界面如下所示:
在这里插入图片描述
上图中页面渲染使用简单的数据绑定,关于数据绑定更多内容,将在后续章节用到。

四、结语

如您在使用过程中有任何问题,请加QQ群进一步交流。

QQ交流群:906015840 (备注:物联网项目交流)

源码获取:扫描下方二维码,关注公众号,回复wechat即可

一叶孤沙出品:一沙一世界,一叶一菩提
图片

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 、可私信6博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 、可私信6博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

物联网客栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值