微信小程序数据绑定

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

深入解析FOC电流环PI参数整定:从理论到实践

本文深入解析了FOC(磁场定向控制)中电流环PI参数整定的核心原理与实践方法。文章从永磁同步电机模型出发,详细阐述了基于带宽与零极点对消的工程法及考虑逆变器延迟的二阶系统整定法两种经典策略,并提供了从理论计算到安全上电调试的完整步骤与常见问题解决方案,帮助工程师精准调校电机控制性能。

weixin_29164497的博客 446

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

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

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

分辨率太小 / Retina 模糊 / 全屏异常:一篇解决 VMware Fusion + Kali 显示问题(Xfce & GNOME 通用)

本文提供了在Mac(尤其是Retina屏)上运行Kali Linux时常见显示问题的完整解决方案。主要解决三类问题:分辨率太小、Retina屏模糊和全屏异常。核心思路是先安装open-vm-tools-desktop并重启,这是90%问题的根源。然后根据不同问题分别处理:调整DPI/Scale解决字体大小,避免双重缩放导致的模糊,以及通过窗口拉伸和重启解决全屏异常。文章还给出了针对Xfce和GNOME的最佳配置建议,并强调调试完成后应创建快照以便快速恢复。最后提供了速查表,方便用户快速参考关键步骤。

致力于分享在各类技术领域的学习与实践经验,涵盖编程、虚拟化、开源工具、网络安全等。 874

OpenWrt路由开启DDNS+端口转发进行外网访问

OpenWrt路由开启DDNS+端口转发进行外网访问(LuCI界面实现)--开篇一、准备工作二、开机!三、连接--结尾 –开篇 本篇适用于一切装有OpenWrt系统的路由器/软路由,只要你保证有WAN接口和一个光猫,甚至你不需要有LAN接口(当然前提是你能连接路由器的WIFI进后台,不然你只能通过LAN进后台咯)。所有的配置过程都是基于LuCI界面来的,当然大神们一般都通过SSH登陆路由使用命令配置,但我也不会啊,只能给个有GUI界面的教程了。 一、准备工作 一个装有OpenWrt系统的路由器/软路由并

秋之颂的博客 9万+

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

ROS & ROS2 机器人深度相机激光雷达多传感器标定工具箱

不过,多传感器标定工具箱允许通过编辑 yaml 文件来调整标定目标的参数: <repository>/mutlisensor_calibration/cfg/TargetWithCirclesAndAruco.yaml%YAML:1.0rows: 4cols: 1dt: irows: 4cols: 2dt: frows: 1cols: 12dt: fCAD 模型网格/云通过 GICP 将模型数据与分割点云对齐,用于优化检测到的目标姿态。

2506_90492529的博客 2107

【微信小程序】数据绑定

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

hacker707的博客 6462

DNA图谱分析:自动分析DNA图谱中的变异YOLOv5、YOLOv8、YOLOv10

YOLO(You Only Look Once)是一种基于卷积神经网络(CNN)的目标检测模型,因其高效的检测速度和优异的精度而广泛应用于计算机视觉任务。一次性检测:与传统的目标检测方法不同,YOLO通过回归方法同时预测多个边界框和类别信息,从而实现高效的目标检测。高精度与高速度:YOLO在检测精度和速度之间找到了平衡,适用于实时目标检测任务。

YOLO 730

PCL RANSAC拟合空间圆【2026最新版】

RANSAC三维点云空间3D圆拟合。博客长期更新,本文最新更新时间为:2026年4月13日。代码在PCL1.15.0中测试通过

点云侠的博客 7454

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

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

m0_59704905的博客 3333

17、非线性动力学特征在情感语音与食管语音分析中的应用

本文探讨了非线性动力学特征在情感语音与食管语音分析中的应用。在情感语音识别中,选取Hurst指数、相关维数和Lempel-Ziv复杂度等混沌特征结合统计量,通过神经网络实现了中性、恐惧和愤怒情感的高效分类,全局成功率高达93.78%。在食管语音分析中,针对其缺乏明显周期性的问题,提出基于改进自相关方法的基频测量流程,包括包络计算、平滑与峰值细化,并对基频的物理意义提出思考。研究展示了两类语音在特征表现与技术方法上的差异,展望了其在客服、安全、医疗康复等领域的应用前景,并指出了未来在特征拓展、算法优化和发声机

sunny的博客 72

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

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

DA14531之如何Debug(在线调试、Jlink仿真、串口打印)

在线调试和串口打印调试。在线调试是Keil软件配合Jlink编译、烧录、仿真为一体的,其操作包括:运行、停止、打断点,单步运行等。而串口打印调试,只需打开相关配置,让arch_printf()函数正常输出串口数据。若想在初始化完成后打印arch_printf(“goto Loop\r\n”);波特率为115200,接收到串口消息goto Loop。连好线后,点击仿真按钮,在线Jlink调试。

hejinwu1314的博客 1792

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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

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

weixin_52173250的博客 853

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

微信小程序的数据绑定

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

weixin_30381793的博客 299

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

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

余额充值