小程序 wxml 语法 —— 37 setData() - 修改对象类型数据

news/2025/3/9 8:38:09/

这一节主要演示如何新增、修改和删除对象数据中单个/多个属性,我们直接使用微信开发者工具进行演示;

新增单个/多个属性

  • 在 pages/cate/cate.js 中添加数据声明和对应的新增属性方法,如下:
Page({// 在小程序页面中所需要使用的数据均来自 data 对象data: {userInfo: {}},// 新增单个 / 多个属性updateUserInfo() {this.setData({// 如果给对象新增属性,可以将 key 写成数据路径的方式 a.b.c'userInfo.name': 'tom'})}
})
  • 在 pages/cate/cate.wxml 中添加对应的页面样式,如下:
<view>{{ userInfo.name }}</view>
<button type="warn" bind:tap="updateUserInfo">修改对象类型数据</button>

刷新页面,点击按钮,可以发现新增的 name 值在页面上显示了,如下:

在这里插入图片描述
如果需要新增多个属性值,写法是一样的,也要写成一个数据路径,下面演示一下新增多个属性:

  • 在 pages/cate/cate.wxml 中添加对应的页面样式,如下:
<view>{{ userInfo.name }}</view>
<view>{{ userInfo.age }}</view>
<button type="warn" bind:tap="updateUserInfo">修改对象类型数据</button>
  • 在 pages/cate/cate.js 中添加数据声明和对应的新增属性方法,如下:
Page({// 在小程序页面中所需要使用的数据均来自 data 对象data: {userInfo: {}},// 新增单个 / 多个属性updateUserInfo() {this.setData({// 如果给对象新增属性,可以将 key 写成数据路径的方式 a.b.c'userInfo.name': 'tom','userInfo.age': 10})}
})

刷新页面,点击按钮,可以发现新增的 name 值和 age 值在页面上显示了,如下:

在这里插入图片描述

修改单个/多个属性

  • 在 pages/cate/cate.wxml 中添加对应的页面样式,如下:
<view>{{ userInfo.name }}</view>
<view>{{ userInfo.age }}</view>
<button type="warn" bind:tap="updateUserInfo">修改对象类型数据</button>
  • 在 pages/cate/cate.js 中添加数据声明和对应的新增属性方法,如下:
Page({// 在小程序页面中所需要使用的数据均来自 data 对象data: {userInfo: {'name': 'tom','age': 10}},// 修改单个 / 多个属性updateUserInfo(){this.setData({// 如果给对象修改属性,可以将 key 写成数据路径的方式 a.b.c'userInfo.name': 'jerry','userInfo.age': 18})}
})

刷新页面,点击按钮,可以发现修改的 name 值和 age 值在页面上显示了,如下:

在这里插入图片描述
在上面的演示中,不管新增数据或者修改数据,都需要使用数据路径的方式 a.b.c,使用起来比较麻烦,所以我们需要优化一下,我们可以使用 ES6 提供的展开运算符和 Object.assign() ;

  • ES6 展开运算符方法
Page({// 在小程序页面中所需要使用的数据均来自 data 对象data: {userInfo: {'name': 'tom','age': 10}},// 修改单个 / 多个属性updateUserInfo(){// ES6 提供的展开运算符// 通过展开运算符能够将对象中的属性复制给另一个对象// 后面的属性会覆盖前面的属性const userInfo = {...this.userInfo,name: 'jerry',age: 18}this.setData({userInfo})},
})
  • Object.assign 方法
Page({// 在小程序页面中所需要使用的数据均来自 data 对象data: {userInfo: {'name': 'tom','age': 10}},// 修改单个 / 多个属性updateUserInfo(){const userInfo = Object.assign(this.data.userInfo, {name: 'jerry'}, {age: 18});this.setData({userInfo})},
})

删除单个/多个属性

  • 在 pages/cate/cate.js 中添加数据声明和对应的删除属性方法,如下:
Page({// 在小程序页面中所需要使用的数据均来自 data 对象data: {userInfo: {'name': 'tom','age': 10,'test': 111}},// 删除单个 / 多个属性updateUserInfo(){// 删除单个属性delete this.data.userInfo.agethis.setData({userInfo: this.data.userInfo})// 删除多个属性const {age, test, ...rest} = this.data.userInfothis.setData({userInfo: rest})},
})

上面介绍的方法只是修改对象类型数据的其中一种方法,并不是所有,我们可以使用其它的修改对象数据的方法;

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


http://www.ppmy.cn/news/1577772.html

相关文章

Vue3-vs-Vue2

Vue3 性能提升 与 Vue2.x 相比, mount 50% 提升, 内存占用小 120% Vue3 框架体积减少 核心代码 Composition API: 13.5kb, 最小 11.75kb所有 Runtime: 22.5kb (Vue2 是 32kb) Vue3 新特性 TS 重写 Diff 算法, 使用 Proxy 性能更优, 框架体积更小新的 Compiler, 通过注释标…

每日一题———面试

一、http和https的区别是什么&#xff1f; 区别主要有以下四点&#xff1a; 1.HTTP是超文本传输协议&#xff0c;信息是文明传输&#xff0c;存在安全风险的问题。HTTPS则解决HTTP不安全的缺陷&#xff0c;在TCP和HTTP网络层之间加入SSL/TLS安全协议&#xff0c;使得报文能够加…

【数据仓库与数据挖掘基础】决策分析

一、数据仓库中的决策分析 1. 定义 决策分析在数据仓库中是指利用存储在数据仓库中的数据&#xff0c;通过分析和报告生成支持决策的信息。数据仓库整合了来自不同来源的数据&#xff0c;经过清洗和转换&#xff0c;提供了一个统一的视图&#xff0c;帮助管理层和决策者做出明…

vLLM + Open-WebUI 本地私有化部署 DeepSeek-R1-Distill-Qwen-32B 方案

一、vLLM 部署 DeepSeek-R1-Distill-Qwen-32B DeepSeek-R1-Distill 系列模型是 DeepSeek-R1 的蒸馏模型&#xff0c;官方提供了从 1.5B - 70B 不同尺寸大小的模型。特别适合在计算资源有限的环境中部署。 DeepSeek-R1 各个版本的蒸馏模型评估结果如下&#xff1a; 其中 DeepS…

使用浏览器插件GitZip一次性下载多个Github文件

在Edge插件商店中下载GitZip 在github中选择想要下载的文件 然后你会发现右下角一个黑箭头→&#xff0c;点击黑箭头&#xff0c;会出现提示&#xff1a; 你就按照它的提示来&#xff0c;点击GitZip的图标&#xff0c;接着会出现&#xff1a; 点击Private&#xff0c;然后按照…

Android 仿 DeepSeek 思考效果:逐字显示 AI 生成内容,支持加粗、颜色,复制内容

最近特别火的非AI莫属了&#xff0c;对我们高级搬运工太友好了&#xff0c;不管是网页端还是APP端&#xff0c;输入你要问的问题&#xff0c;都会逐字给你显示出来&#xff0c;有的还会加粗&#xff0c;这种效果看着不错&#xff0c;今天就带大家一起来实现。有啥更好的建议请在…

Array and string offset access syntax with curly braces is deprecated

警告信息 “Array and string offset access syntax with curly braces is deprecated” 是 PHP 中的一个弃用警告&#xff08;Deprecation Notice&#xff09;&#xff0c;表明在 PHP 中使用花括号 {} 来访问数组或字符串的偏移量已经被标记为过时。 背景 在 PHP 的早期版本…

现代密码学体系架构设计原则与实践:基于Python的实现与GPU加速GUI演示

目录 现代密码学体系架构设计原则与实践:基于Python的实现与GPU加速GUI演示一、前言二、现代密码学体系架构设计原则1. 安全性原则2. 模块化设计3. 最小权限原则4. 加密算法的选择5. 硬件加速与GPU应用6. 可扩展性与可维护性三、主要加密算法解析1. 对称加密算法:AES2. 非对称…