小程序学习 02 - 数据绑定和渲染

    科技2022-07-13  137

    数据绑定

    wxml 文件中所使用的数据均来源于同名 json 文件中 Page() 里的 data 对象

    基本使用

    标签内容

    使用 {{ }} 将变量或者表达式包起来,一般作用于标签中间的内容:

    <view class="temp"> {{ temp }} </view> Page({ data: { temp: "hello world" } })

    标签属性

    在属性中使用变量或表达式的部分使用 {{ }} 包裹起来:

    <view data-id="id-{{ dataId }}"></view> Page({ data: { dataId: 1 } })

    条件渲染

    使用 wx:if 来判断是否需要渲染该代码块,也可以用 wx:elif 和 wx:else 来添加一个 else 块:

    <view wx:if="{{ len > 5 }}">1</view> <view wx:elif="{{ len > 2 }}">2</view> <view wx:else>3</view>

    注意:

    wx:if 是一个控制属性,只能使用标签属性的渲染方式作用于 标签上。wx:if 控制的是标签会不会被渲染,hidden 控制的是标签会不会被展示。

    列表渲染

    在组件上使用 wx:for 给标签绑定一个数组,即可使用数组中各项的数据重复渲染该组件。下标变量名默认为 index,当前项的变量名默认为 item :

    <view wx:for="{{ array }}">{{ index }} - {{ item }}<view>

    如果不想使用默认的 index 和 item,也可以使用 wx:for-index 和 wx:for-item 来进行自定义:

    <view wx:for="{{ array }}" wx:for-index="myIndex" wx:for-item="myItem"> {{ myIndex }} - {{ myItem }} </view>

    wx:for 也可以嵌套使用,类似于 for 循环的嵌套。

    使用 wx:for 时,需要使用 wx:key 来指定列表中项目的唯一的标识符, wx:key 的值有以两种形式:

    字符串,代表在 for 循环的数组中 item 的某个属性名,该属性的值需要是列表中唯一的字符串或数字,且不能动态改变。'*this' 代表在 for 循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字。

    如不提供 wx:key,会报一个 warning, 如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。

    注意:

    当 wx:for 的值为字符串时,会将字符串解析成字符串数组。花括号和引号之间如果有空格,将最终被解析成为字符串。
    Processed: 0.012, SQL: 8