小程序 wxml 语法 —— 36 wxml 语法 - setData() 修改数据

在小程序中修改数据不推荐通过赋值的方式进行修改,通过赋值的方式修改数据无法改变页面的数据;

在微信小程序中,推荐调用 setData() 方式进行修改,setData() 方法接收对象作为参数,key 是需要修改的数据,value 是最新的值;

setData() 方法有两个作用:

  • 更新数据
  • 驱动视图更新;

下面打开微信开发者工具,演示一下如何通过 setData 进行数据修改:

  • 在 pages/cate/cate.js 中进行数据声明,如下:

    javascript 复制代码
    Page({
      // 在小程序页面中所需要使用的数据均来自 data 对象
      data:{
        num: 1
      },
    
      updateNum() {
        // 获取 num
        // console.log(this.data.num);
    
        // 通过赋值的方式直接修改数据 num
        this.data.num += 1;
        console.log(this.data.num);
      }
    })
  • 在 page/cate/cate.wxml 中添加如下代码:

    html 复制代码
    <view>{{ num }}</view>
    
    <button bind:tap="updateNum">更新 num</button>

    刷新页面,点击按钮,可以发现 console 打印的 num 值在不断增大,但是页面中的 num 没有发生变化,如下:

通过上面的演示可以知道,通过赋值可以修改数据,但是不能改变页面上已经显示的数据;如果我们想更新 data 中的数据,同时也更新页面上已经显示的数据,就得使用 setData() ;

修改一下 pages/cate/cate.js 中的代码,如下:

javascript 复制代码
Page({
  // 在小程序页面中所需要使用的数据均来自 data 对象
  data:{
    num: 1
  },

  updateNum() {    
    this.setData({
      // key: 需要更新的数据的名称
      // value: 需要更新的数据的值
      num: this.data.num + 1
    })
  }
})

修改代码后,刷新页面,点击按钮,可以发现页面上的 num 值实时更新了,如下图所示:

参考视频:尚硅谷微信小程序开发教程

相关推荐
说私域1 小时前
技术指数变革下的组织适应性研究:基于定制开发开源AI智能名片S2B2C商城小程序的实践观察
人工智能·小程序·开源
sheji34162 小时前
【开题答辩全过程】以 《基于小程序的校内快递代取服务平台的设计与实现》为例,包含答辩的问题和答案
小程序
说私域1 天前
私域整体结构的顶层设计:基于“开源AI智能名片链动2+1模式S2B2C商城小程序”的体系重构
人工智能·小程序·开源
2501_915106321 天前
CDN 可以实现 HTTPS 吗?实战要点、部署模式与真机验证流程
网络协议·http·ios·小程序·https·uni-app·iphone
云起SAAS2 天前
SCL-90症状自评量表抖音快手微信小程序看广告流量主开源
微信小程序·小程序·ai编程·看广告变现轻·scl-90症状自评量表·scl-90
LoveEate2 天前
uniapp 运行/发版微信小程序
微信小程序·小程序·uni-app
韩立学长2 天前
【开题答辩实录分享】以《基于微信小程序的糖尿病居家健康管理系统》为例进行答辩实录分享
微信小程序·小程序
杏花春雨江南2 天前
小程序的页面宽度 设置多少合适??
小程序
fakaifa2 天前
【高级版】沃德政务招商系统源码+uniapp小程序
小程序·uni-app·源码下载·沃德政务招商系统·招商系统源码
云起SAAS2 天前
族谱家谱抖音快手微信小程序看广告流量主开源
微信小程序·小程序·ai编程·看广告变现轻·族谱家谱