数据绑定

  • 1、为什么会有数据绑定:

  • 用户界面呈现会因时刻不同、数据发生变化而有所不同。或是因为用户操作发生了动态改变,这就要求程序的运行过程中,要有动态的去改变渲染界面的能力,从而达到更好的用户体验。
  • 在Web开发中,借助JavaScript并通过DOM接口,完成界面的动态更新;
  • 在小程序中,使用WXML语言提供的数据绑定功能,完成界面的动态更新;
  • 2、数据绑定语法:

  • WXML 中的动态数据均来自对应 Page 的 data;
  • 数据绑定使用 Mustache 语法(双大括号)将变量包起来。
    {{ value }}
  • 3、数据绑定基本用法:

3.1 内容绑定:

内容绑定是数据绑定的最基本用法,可以在标签内渲染动态的内容,需要在双引号之内。

<view> {{ message }} </view>
Page({
  data: {
    message: 'Hello MINA!'
  }
})
3.2 组件属性绑定:

可以实现动态属性,借助动态属性,可以实现如下操作:
——动态样式;
——动态宽度;
——动态长度;
——.....

<view id="item-{{id}}"> </view>
Page({
  data: {
    id: 0
  }
})
3.3关键字:

需要在双引号之内:
true:boolean 类型的 true,代表真值。
false: boolean 类型的 false,代表假值。

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

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

3.4 运算:

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

  • 三元运算:可以简化代码,减少代码量,提升代码的可读性。
<view hidden="{{flag ? true : false}}"> Hidden </view>
  • 算数运算:标签内支持简单的加减乘除运算。
<view> {{a + b}} + {{c}} + d </view>
Page({
  data: {
    a: 1,
    b: 2,
    c: 3
  }
})
  • 逻辑判断:
<view wx:if="{{length > 5}}"> </view>
  • 字符串运算:标签内支持对字符串的操作。
<view>{{"hello" + name}}</view>
Page({
  data:{
    name: 'MINA'
  }
})
  • 数据路径运算: WXML支持对对象、数组的路径操作,读取其内部的数据。
<view>{{object.key}} {{array[0]}}</view>
Page({
  data: {
    object: {
      key: 'Hello '
    },
    array: ['MINA']
  }
})
3.5 组合:

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

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

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

  • 对象: WXML可以在 Mustache内进行对象的组合。
<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}

——注意:

  • 如果组合时,出现了相同的变量名,后面的变量会覆盖前面的变量;
  • 花括号和引号之间如果有空格,空格最终将解析成为字符串。
<view wx:for="{{[1,2,3]}} ">
  {{item}}
</view>

等同于

<view wx:for="{{[1,2,3] + ' '}}">
  {{item}}
</view>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • WXML 中的动态数据均来自对应 Page 的 data。 简单绑定 数据绑定使用 Mustache 语法(双大括...
    LYSNote阅读 1,484评论 0 1
  • 数据绑定分为单项绑定和双向绑定两种。单向绑定上,数据的流向是单方面的,只能从代码流向 UI;双向绑定的数据是双向的...
    Lin野人阅读 848评论 0 0
  • 郑老师说了一句话:所谓的专业很多时候是有效时间的积累。至少达到一个本科生的水平,需要每天二十分钟持续一年的时间。
    AronGao阅读 221评论 0 0
  • 文/莫小微 01 周末的早上,适合做梦。 梦里,和金发碧眼的外国帅哥品尝地窖里的藏酒,在菜菌河畔喝完下午茶,又牵着...
    莫小微阅读 921评论 59 75
  • 我对你根本没抱幻想。”他说道,“我知道你愚蠢、轻佻、头脑空虚,然而我爱你。我知道你的企图、你的理想,你势利、庸俗,...
    耀丶二月阅读 157评论 0 0

友情链接更多精彩内容