【微信小程序】实现开关灯

本文介绍了一个使用微信小程序实现的灯控交互界面案例。通过三目运算符改变灯的状态(开/关),并利用wxml、wxss和js文件完成页面布局及功能实现。点击图片即可切换灯的状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
light.wxml

<!--pages/light/light.wxml-->
<view wx:for="{{cons}}" class="light">
  <image
src ="{{item.src}}"
mode="aspectFill"
bindtap = "changeColor"
data-name = "{{index}}"> 
</image>
<h4>
{{item.isOn}}
</h4>
</view>

light.wxss

/* pages/light/light.wxss */
.light image{
  width: 100rpx;
  height: 100rpx;
  margin-right: 50rpx;
  display: block;
}
.light{
  float: left;
}
h4 {
  padding-left:15rpx;
}

light.js

  • 重要:三目运算符
// pages/light/light.js
Page({
  
  /**
   * Page initial data
   */
  data: {
    // imgUrl: "../../imgs/bulb.png"
    cons: [
      {isOn: "off", src:"../../imgs/bulb.png"},
      {isOn: "off", src:"../../imgs/bulb.png"},
      {isOn: "off", src:"../../imgs/bulb.png"}
    ]

  },

  changeColor(e){
    // 获取索引值
    // console.log(e.currentTarget.dataset.name)
    let index = e.currentTarget.dataset.name

    this.data.cons[index].src = this.data.cons[index].src == "../../imgs/bulb.png"?"../../imgs/bulbSel.png":"../../imgs/bulb.png"

    this.data.cons[index].isOn = this.data.cons[index].isOn == "on"?"off":"on"

    this.setData({
      cons: this.data.cons
    })
  },

  /**
   * Lifecycle function--Called when page load
   */
  onLoad: function (options) {

  },

  /**
   * Lifecycle function--Called when page is initially rendered
   */
  onReady: function () {

  },

  /**
   * Lifecycle function--Called when page show
   */
  onShow: function () {

  },

  /**
   * Lifecycle function--Called when page hide
   */
  onHide: function () {

  },

  /**
   * Lifecycle function--Called when page unload
   */
  onUnload: function () {

  },

  /**
   * Page event handler function--Called when user drop down
   */
  onPullDownRefresh: function () {

  },

  /**
   * Called when page reach bottom
   */
  onReachBottom: function () {

  },

  /**
   * Called when user click on the top right corner to share
   */
  onShareAppMessage: function () {

  }
})
### 微信小程序控制关灯功能的实现 要通过微信小程序实现对K10设备或模块的关灯控制,通常需要以下几个方面的技术支持: #### 1. **硬件接口协议** 首先,需确认K10设备支持何种通信方式。常见的物联网设备通信协议包括Wi-Fi、蓝牙、Zigbee等[^1]。如果K10设备具备网络连接能力,则可以通过云端API进行远程控制;如果是本地直连型设备,则可能需要依赖于局域网内的特定协议。 #### 2. **服务器端发** 如果采用云服务模式,发者需要搭建一个中间层的服务平台来接收来自微信小程序的操作请求并转发至目标设备。此过程涉及到RESTful API的设计以及数据的安全传输机制[^2]。例如,可以利用Node.js构建轻量级后台应用处理这些交互逻辑。 ```javascript // 示例:简单的Express框架设置路由响应客户端指令 const express = require('express'); const app = express(); app.post('/toggle-light', (req, res) => { const { deviceId, action } = req.body; // 假设这里调用了某个SDK或者发送HTTP请求给实际控制器 sendCommandToDevice(deviceId, action).then(() => { res.json({ success: true }); }).catch(err => { console.error(err); res.status(500).json({ error: 'Failed to toggle light' }); }); }); function sendCommandToDevice(id, cmd){ return new Promise((resolve, reject)=>{ // 实际命令下发逻辑... }) } app.listen(3000, () => console.log('Server running on port 3000')); ``` #### 3. **前端页面设计与事件绑定** 在微信小程序内部,应创建UI界面供用户操作具状态切换按钮,并监听点击事件触发相应的业务流程[^3]。下面是一个基础的小程序代码片段展示如何定义这样的组件行为。 ```xml <!-- WXML结构 --> <view class="container"> <button bindtap="handleToggle">Switch Light</button> </view> ``` ```js // JS脚本部分 Page({ data:{ lampStatus:false, }, handleToggle(){ this.setData({lampStatus:!this.data.lampStatus}); wx.request({ url:'https://yourserver.com/toggle-light', method:"POST", header:{'content-type':'application/json'}, data:{ deviceId:"K10-XXXX", action:this.data.lampStatus ? "on":"off" } }) } }) ``` #### 4. **安全性考量** 不论采取哪种架构形式,在整个链路中都不可忽视安全防护措施的重要性。这不仅限于加密敏感信息防止窃听篡改,还包括验证身份合法性避免非法访问等问题的发生[^4]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值