微信小程序数据绑定

小程序基础基础1 小程序制作基础学习 阅读详情

 

在实际的开发中,数据大部分都是来自后台,比如我们创建微信小程序获取个人头像和名字,今天就学习下数据绑定,在官方文档中:

 

视图层 View

框架的视图层由 WXML 与 WXSS 编写,由组件来进行展示。

将逻辑层的数据反应成视图,同时将视图层的事件发送给逻辑层。

WXML(WeiXin Markup language) 用于描述页面的结构。

WXS(WeiXin Script) 是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。

WXSS(WeiXin Style Sheet) 用于描述页面的样式。

组件(Component)是视图的基本组成单元

 

WXML

WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。

用以下一些简单的例子来看看 WXML 具有什么能力

 

数据绑定

WXML 中的动态数据均来自对应 Page 的 data

简单绑定

数据绑定使用 Mustache 语法(双大括号)将变量包起来,可以作用于

数据绑定在wxml中可以作用于标签属性或者标签上  如果是作用于在标签属性上必须加上  ""  号

组件属性(需要在双引号之内)

比如:<text>{{"今天是:"+date}}</text>

我们的Page  data:

data: {

date:"2018-11-13"

},

那么最终的UI显示是:

控制属性(需要在双引号之内)

比如控制某个标签是否显示:

<text wx:if="{{condition}}">显示还是隐藏这是个问题</text>

那么只需要我们在data下配置condition变量即可

data: {

date:"2018-11-13",

condition :false

},

这样这个text标签就不会显示了.

 

关键字(需要在双引号之内)

true:boolean 类型的 true,代表真值。

false: boolean 类型的 false,代表假值。

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

特别注意:不要直接写 checked="false",其计算结果是一个字符串,转成 boolean 类型后代表真值

运算

可以在 {{}} 内进行简单的运算,支持的有如下几种方式

三元运算

<view hidden="{{flag ? true : false}}"> Hidden </view>

算数运算

<view> {{a + b}} + {{c}} + d </view>
Page({
  data: {
    a: 1,
    b: 2,
    c: 3
  }
})

 这样view的内容为3+3+d

逻辑判断

<view wx:if="{{length > 5}}"> </view>

字符串运算

<view>{{"hello" + name}}</view>
Page({
  data:{
    name: 'MINA'
  }
})

 数据路径运算

<view>{{object.key}} {{array[0]}}</view>
Page({
  data: {
    object: {
      key: 'Hello '
    },
    array: ['MINA']
  }
})

 组合

也可以在 Mustache 内直接进行组合,构成新的对象或者数组

数组

<view wx:for="{{[zero, 1, 2, 3, 4]}}"> {{item}} </view>
Page({
  data: {
    zero: 0
  }
})

 最终组合成数组[0, 1, 2, 3, 4]。

对象

<template is="objectCombine" data="{{for: a, bar: b}}"></template>
Page({
  data: {
    a: 1,
    b: 2
  }
})

 最终组合成的对象是 {for: 1, bar: 2}

也可以用扩展运算符 ... 来将一个对象展开

<template is="objectCombine" data="{{...obj1, ...obj2, e: 5}}"></template>
Page({
  data: {
    obj1: {
      a: 1,
      b: 2
    },
    obj2: {
      c: 3,
      d: 4
    }
  }
})

最终组合成的对象是 {a: 1, b: 2, c: 3, d: 4, e: 5}。

如果对象的 key 和 value 相同,也可以间接地表达

<template is="objectCombine" data="{{foo, bar}}"></template>
Page({
  data: {
    foo: 'my-foo',
    bar: 'my-bar'
  }
})

 最终组合成的对象是 {foo: 'my-foo', bar:'my-bar'}

注意:上述方式可以随意组合,但是如有存在变量名相同的情况,后边的会覆盖前面,如

<template is="objectCombine" data="{{...obj1, ...obj2, a, c: 6}}"></template>

 

Page({
  data: {
    obj1: {
      a: 1,
      b: 2
    },
    obj2: {
      b: 3,
      c: 4
    },
    a: 5
  }
})

 最终组合成的对象是 {a: 5, b: 3, c: 6}

注意: 花括号和引号之间如果有空格,将最终被解析成为字符串

<view wx:for="{{[1,2,3]}} ">
  {{item}}
</view>

等同于

<view wx:for="{{[1,2,3] + ' '}}">
  {{item}}
</view>

 

小白学习微信小程序的数据绑定和渲染 通过学习和掌握这些知识,我们可以在开发微信小程序时,灵活运用数据绑定和渲染的方式,提高开发效率,实现更丰富的功能和更友好的界面。数据绑定和渲染是小程序开发中非常重要的一部分,本文将详细介绍微信小程序中数据绑定和渲染的相关知识,并给出代码案例进行演示。上述代码中,将message变量与view标签进行了绑定,当message的值发生改变时,view标签中的内容也会相应地更新。上述代码中,通过使用wx:if和wx:else属性,根据showMessage的值的不同,来决定渲染不同的内容。 阅读详情

相关推荐

微信小程序开发中的数据绑定和事件处理

在上面的例子中,通过bindtap事件将tapHandler函数绑定到了wxml文件中的view元素上,并通过catchtap事件将buttonHandler函数绑定到了wxml文件中的button元素上。在上面的例子中,将data中的message绑定到了wxml文件中的input元素上,并通过bindinput事件将输入框的内容绑定到inputChange函数中。在上面的例子中,将data中的message绑定到了wxml文件中的view元素上。

吃不胖. 697

微信小程序-数据变量及事件绑定初探

一、数据变量 a、初始化数据 在页面.js 的 data 选项中,声明变量msg data: { msg:'原始变量msg' }, b、使用数据 1.模板结构中使用双大括号 {{message}} 2.注意事项: 小程序中为单项数据流 model ---> view <view class="homeView"> <view class="helloView"> <text>{{msg}}</text> <

u012903898的博客 1656

ViViT视频分类实战:从Tubelet Embedding到4种Attention变体的保姆级解析

本文深入解析ViViT(Video Vision Transformer)在视频分类中的实战应用,重点介绍Tubelet Embedding技术和4种Attention变体的实现细节。通过对比分析Spatio-Temporal、Factorised Encoder等不同Attention机制的性能特点,提供工程优化策略和Kinetics数据集上的实战示例,帮助开发者掌握这一前沿视频理解技术。

weixin_29292535的博客 386

【微信小程序入门到精通】— 带你揭开数据绑定的真面目

对于目前形式,微信小程序是一个热门,那么我们该如何去学习并且掌握之后去做实际项目呢?为此我特意开设此专栏,在我学习的同时也将其分享给大家!本篇文章主要介绍数据绑定这一名词,那么我们如何在小程序页面定义数据并且使用呢?1. 在 date 里面定义数据2. 在 wxml 里面使用数据如果在往下阅读的过程中,有什么错误的地方,期待大家的指点!请诸君打开微信开发者工具,接下里跟着我一步一步操作!

热爱生活,积极向上的阿酱! 2229

【Telephony】APN配置及加载流程&项目实践(AOSP)

学习APN关键是学会明白apns-conf.xml文件各个参数的意思,然后熟悉TelephonyProvider是如何读取文件创建数据库的,譬如数据库表的约束、文件的读写顺序等,还有读取后的ApnSetting的二次定制以及显示(例如屏蔽xcap等)。虽然一般在项目中APN的需求很简单,就是按照客户提供的APN参数添加上配置,或者在显示屏蔽一些参数,但是项目维护的过程中APN的问题也是比较多的。

weixin_44513784的博客 5509

Oracle监听配置

Oracle监听配置## 标题 选择“监听程序配置”,然后下一步。 选择重新配置,然后下一步/。 不用管,按下一步。 下一步。 选择“否”,下一步。 选择"本地net服务名配置",然后下一步。 选择“重新配置”,然后下一步。 服务名 是"Oracle",然后下一步。 主机为你的IP地址,在doc系统下通过"ipconfig"获取IP地址。然后输入,然后下一步。 选择“是,进行测试...

m0_46079215的博客 806

微信小程序 input双向数据绑定

分享一个 小程序input实现双向数据绑定的方法 //wxml部分 <input type="text" value="{{phone}}" bindinput="vmodel" data-value="phone" // 就是这一行了 placeholder="请输入联系电话" placeholder-class="placeholder-input"/> js部分 data:{ phone:'' } vmodel(e) { this.setData({ [e.cu

Dr_logic的博客 2441

Ubuntu下全面解析硬盘健康:从基础检测到性能优化

本文详细介绍了在Ubuntu系统中如何全面监测硬盘健康状态。从安装smartmontools工具、解读SMART关键属性(如重新分配扇区计数、通电时间),到进行性能基准测试(使用dd和fio),最后根据检测结果提供针对性的优化与预警方案,帮助用户有效预防数据丢失并提升硬盘可靠性。

weixin_29223603的博客 287

【微信小程序】数据绑定

微信小程序之数据绑定,持续更新【微信小程序系列专栏

hacker707的博客 6462

激光雷达的64线,32线,16线,你弄懂了吗?

激光雷达的 64 线、32 线、16 线是指激光雷达系统中能够同时发射和接收激光脉冲的激光线的数量5。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 2637

PHPStorm携手ThinkPHP8:开启高效开发之旅

本文围绕使用 PHPStorm 进行 ThinkPHP8 开发展开,先介绍开发环境搭建与 Xdebug 配置,再阐述 PHPStorm 集成 ThinkPHP8 的步骤,包括项目导入、解释器和服务器配置。还讲解了项目开发基础、数据库操作、高级技巧、调试处理及部署上线等内容,为开发者提供了从环境搭建到项目上线的完整指引,助力高效开展 ThinkPHP8 开发工作。

邓邓子的博客 1544

微信小程序开发之数据绑定

真实项目中,数据通常会放置在服务器中,通过HTTP请求来访问服务器提供的RESTFUL API,实现数据获取。微信小程序入门开发时,我们将页面里的内容全都直接编码在wxml文件中,这种代码写法称为“硬编码”,数据直接暴露在wxml文件中,是一种非常不好的编码习惯。现在我们尝试将编码在wxml文件的数据移植到js文件中,再将数据填充在wxml中,并显示。小程序内部实现了单项数据绑定,即仅支持从逻辑层传递到渲染层的数据绑定(通过数据绑定的机制来做数据的初始化和更新在微信小程序开发中,数据绑定是一种机制。

m0_59704905的博客 3333

多标签图像分类:标签依赖关系建模的最新论文解读与实战应用

多标签图像分类:标签依赖关系建模的最新论文解读与实战应用 ,人工智能,计算机视觉,大模型,AI,本文解读了最新相关论文,包括基于图神经网络(GCN)的ML-GCN方法,通过构建标签相关矩阵建模依赖关系;区域潜在语义依赖的RLSD模型,定位关键区域并利用RNN建模语义依赖;以及语义图表示学习的SSGRL框架,结合语义解耦与交互模块。通过实战应用,展示了基于PyTorch的ML-GCN模型实现,包括图像特征提取、标签依赖建模及训练评估流程,为多标签图像分类提供了有效解决方案。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 18万+

关于微信小程序数据绑定的总结

关于微信小程序数据绑定的总结 其他的具体看官方文档,就不做详述,我们主要放在一些容易产生歧义的地方。 1.data里面有true参数,那么数据绑定是以哪个为准呢? index.js Page({ data: { message:&quot;Hello world&quot;, true:3 } }) index.wxml &amp;lt;view class=&quot;container&quot;&am

suyongsimple的专栏 815

YOLO26涨点改进 | 全网首发Conv独家改进篇 | CVPR 2025 | 引入GCConv卷积改进YOLO26,含GCC3k2二次创新,能够捕捉更加丰富和复杂的特征信息,助力高效涨点

本文提出了一种基于GCConv模块的YOLO26目标检测模型改进方案。GCConv模块通过多路径结构增强特征学习能力,在训练阶段采用垂直多卷积和水平多路径配置,推理时重参数化为单一3x3卷积,显著提升推理速度而不损失性能。实验表明,该模块在复杂场景和多尺度目标检测任务中表现优异,特别适合资源受限的实时应用场景。文章详细介绍了GCConv的网络结构、核心代码实现、YAML配置文件修改方法,并提供了两种改进方案(GCConv和GCC3k2)的具体配置指导。

Ai缝合怪、助力小伙伴高效发论文 318

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

微信小程序 - 数据绑定(单向数据绑定、双向数据绑定)

微信小程序 - 数据绑定(单向数据绑定、双向数据绑定)

weixin_52173250的博客 852

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

微信小程序的数据绑定

  微信小程序的页面分别由四个文件组成:   1..js(逻辑处理文件):负责页面逻辑内容的处理,遵循js语言框架。   2..json(配置文件):用来设置页面的窗口内容,遵循JSON语法规范。   3..wxml(页面结构文件或视图文件):用于页面可视化组件的组织和描述,语法结构类似于xml,与html格式差别较大。   4..wxss(样式文件):兼容CSS语法规范。   数据绑定...

weixin_30381793的博客 299

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【微信小程序】WXML语法——数据绑定

本文对小程序开发——WXML模板语法中的数据绑定进行讲解,并且内嵌使用场景的介绍以及案例

weixin_62542181的博客 2582

【微信小程序】JS/数据绑定

页面JS文件 整个页面执行了一个Page({...})方法,参数是一个Object对象,用来指定页面的初始数据data,生命周期函数(on+...)的函数,事件处理函数 页面的生命周期: 加载 显示 渲染 隐藏 卸载 MINA框架提供5个生命周期函数来监听这5个特定的生命周期: onLoad:监听页面加载,一个页面只会调用一次 onReady:监听页面显示,每次打开页...

三七 1326

微信小程序 数据绑定

数据绑定WXML中的动态数据均来自对应Page的data。简单绑定数据绑定使用"Mustache"语法(双大括号)将变量包起来,可以作用于:内容&lt;view&gt; {{ message }} &lt;/view&gt;Page({ data: { message: 'Hello MINA!' } })组件属性(需要在双引号之内)&lt;view id="item-{{id}}...

Blue的博客 1161

微信小程序input数据绑定问题

微信小程序没有数据绑定,input使用bindblur='事件',输入框失去焦点时触发,更新value&lt;input placeholder-class="placeHolderSty" value="{{tenantInfo.mobile}}" placeholder="请输入手机号" bindblur="mobileInput"/&gt;参考:https://developers.wei...

qq_一望损莓苔的博客 2万+

微信小程序的数据绑定,修改的一些优化

做微信小程序大部分情况下都离不开数据的一些修改及绑定 今天来说一下关于数据方面的一些注意事项 首先是数据绑定 js代码 data: { arrss:[{logs:"1111"}] },为了方便解释,我就只定义这一个数据 既然都定义好那么,我要如何获取他呢,请看下面的实例 wxml代码<button bindtap="wechat">测试</button>为了方便我便用按钮,来触

qq_35730500的博客 3212
上一篇: 微信小程序的Page页面的生命周期
下一篇: 微信小程序的事件机制
zhoushenxian
博客等级 码龄12年 453粉丝 549原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值