微信小程序数据绑定

小程序基础基础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

基于FPGA 外置qspi Flash的读写

fpga上实现flash读写代码

weixin_43498765的博客 4954

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

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

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

群晖NAS实战:从零部署Container Manager与Docker代理配置全攻略

本文详细介绍了在群晖NAS上从零部署Container Manager与配置Docker代理的完整流程。针对国内用户常见的镜像拉取问题,提供了图形化界面与SSH命令行两种解决方案,并分享了MySQL容器部署的实战案例。文章特别强调了网络配置技巧和日常维护方法,帮助用户高效管理NAS上的容器应用。

weixin_29254673的博客 1301

IsaacGym四足机器人sim to real全过程详细解析(walk these ways方法)

本文使用强化学习的方法运行到Aliengo机器人上完成从训练到部署的全过程。该方法使用的是GO1机器人提供了完整的sim to real代码和遥控器控制代码,所以我们只需要重新训练和部署健康就可以使用在Aliengo上。该方法使用lcm进行通讯首先程序通过UDP和机器人控制板进行通讯获取机器人状态并下达指令。然后又通过lcm进行机器人状态信息的发布和模型命令的获取。

weixin_44061195的博客 2万+

微信小程序 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

Cocos Creator 3.x 实战:用脚本动态加载Spine动画,告别resources硬编码

本文详细介绍了Cocos Creator 3.x中Spine动画的动态加载与挂点系统实战技巧。通过Asset Bundle替代传统resources硬编码方式,实现资源的高效管理和热更新支持,同时结合TypeScript强类型和单例模式优化加载流程。文章还深入探讨了跨平台适配、挂点编程方案及性能优化策略,帮助开发者提升游戏开发效率与灵活性。

weixin_42526353的博客 267

【微信小程序】数据绑定

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

hacker707的博客 6462

C#上位机实战:Modbus RTU串口通信(CRC校验+超时重发完整实现)

在工业自动化上位机开发中,Modbus RTU是串口通信的事实标准协议,SerialPort是 .NET 平台操作串口的原生类,无需依赖第三方库即可实现基础通信。实际项目中,工控现场存在电磁干扰、串口丢包、设备响应延迟等问题,CRC 数据校验用于保证报文完整性,超时重发机制用于提升通信稳定性。本文从零封装一套可直接落地的 Modbus RTU 通信组件,包含完整的校验算法、超时控制、重发逻辑,并配套 WinForm 演示界面。本文基于 C# 原生SerialPort类,实现了一套生产可用。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 384

软件设计师---UML

软件设计师---UML

我从不打没有准备的仗! 1万+

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

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

m0_59704905的博客 3333

YOLO11改进|注意力机制篇|引入先验卷积注意力机制CPCA

YOLO11中添加先验卷积注意力机制CAPA

A1983Z的博客 2374

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

关于微信小程序数据绑定的总结 其他的具体看官方文档,就不做详述,我们主要放在一些容易产生歧义的地方。 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

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

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

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

weixin_52173250的博客 852

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

微信小程序的数据绑定

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

weixin_30381793的博客 299

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【微信小程序】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、付费专栏及课程。

余额充值