微信小程序数据绑定及渲染

简介: 微信小程序数据绑定及渲染

微信开发文档:WXML | 微信开放文档 (qq.com)

数据绑定

简单数据绑定

小程序原生支持数据的双向绑定,在wxml文件里面可以使用 Mustache 语法(双{ { }}方法)绑定js文件中data里面的属性
示例:
wxml文件内容:

<view> {
  
  { message }} </view>

js文件内容:

Page({
   
   
  data: {
   
   
    message: 'Hello World!'
    // data中属性之间使用","隔开
  }
})

实际效果:

请添加图片描述

绑定运算

在{ { }}中绑定的数据可以进行算数运算,逻辑判断,逻辑运算,字符串运算等操作
算数运算示例:
wxml文件内容:

<view> {
  
  {a}} + {
  
  {b}} = {
  
  {a + b}} </view>

js文件内容:

Page({
   
   
  data: {
   
   
    a: 2,
    b: 3
  }
})

实际效果:

请添加图片描述

逻辑绑定

在wxml需要boolean类型的值时,如:

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

在这里不能写成 checked="false" 的形式,其计算结果为字符串,wxml会将其默认转换成 true 值,可能会造成逻辑上的错误。

组件绑定函数

使用组件绑定函数后,可通过绑定动作触发相应的函数
js文件内容:

Page({
   
   
  /**
   * 页面的初始数据
   */
  data: {
   
   
    value: 0
  },

  /**
   * 自定义的函数
   */
  bindTest: function () {
   
   
    //给this指针起别名
    var that = this;

    this.setData({
   
   
        value: that.data
    });
    console.log(that.data.value);
    }
 })

wxml文件内容:

<button class="mini-btn" type="primary" size="mini" bindtap="bindTest">{
  
  {value}}</button>

数据渲染

列表渲染

  1. 在组件中使用 wx:for 绑定一个数组,即可使用数组中的数据重复渲染该组件。
  2. 数组当前下标默认为 index,数组当前项的变量名默认为 item
  3. 可通过 { {item.key}} 来渲染 value 值
  4. 当数组中的项目会发生动态变化的时候,必须加上 wx:key 值来指定数组的key,key的属性必须为数组中的唯一标识
  5. 即使数组不会发生动态变化,也建议加上 wx:key 属性

js文件中内容:

data: {
   
   
    form: [
      {
   
   
        'id': 1,
        'data': '数组1'
      },
      {
   
   
        'id': 2,
        'data': '数组2'
      },
      {
   
   
        'id': 3,
        'data': '数组3'
      },
      {
   
   
        'id': 4,
        'data': '数组4'
      },
      {
   
   
        'id': 5,
        'data': '数组5'
      },
    ]
  }

wxml文件中内容:

<view wx:for="{
    
    {form}}" wx:key="id">
  <text decode="{
    
    {true}}" space="{
    
    {true}}">id:{
  
  {item.id}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index:{
  
  {index}}\n</text>
  <text decode="{
    
    {true}}" space="{
    
    {true}}">id:{
  
  {item.id}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data:{
  
  {item.data}}\n</text>
  <text>\n</text>
</view>

展示效果:

请添加图片描述

注意事项:

  1. 在 wxml 和 html文件中,空格一般是不输出的,如果需要输出空格的话,需要使用&nbsp;表示一个空格
  2. 微信小程序默认不开启&nbsp;的使用,若要使用&nbsp;,需要在标签中声明decode="{ {true}}" space="{ {true}}
  3. &nbsp;在text标签中生效,在view标签中不生效

条件渲染

在微信小程序中,使用wx:ifwx:elifwx:else进行条件渲染。条件的逻辑等同于编程语言中 if 语句的逻辑。
wxml文件中内容

<view wx:if="{
    
    {a > 5}}">a大于5</view>
<view wx:elif="{
    
    {a < 5}}">a小于5</view>
<view wx:else>a等于5或不是数字</view>
<text>\n</text>

<view wx:if="{
    
    {b > 5}}">b大于5</view>
<view wx:elif="{
    
    {b < 5}}">b小于5</view>
<view wx:else>b等于5或不是数字</view>
<text>\n</text>![请输入图片描述](https://qiufeng.fun/usr/uploads/2021/08/1346223968.png)

<view wx:if="{
    
    {c > 5}}">c大于5</view>
<view wx:elif="{
    
    {c < 5}}">c小于5</view>
<view wx:else>c等于5或不是数字</view>

js文件中内容:

data: {
   
   
    a: 7,
    b: 3
}

展示效果:

请添加图片描述

相关文章
|
6天前
|
小程序 容器
【微信小程序】-- WXML 模板语法 - 条件渲染 -- wx:if & hidden (十一)
【微信小程序】-- WXML 模板语法 - 条件渲染 -- wx:if & hidden (十一)
|
6天前
|
小程序 JavaScript
【微信小程序】-- WXML 模板语法 - 数据绑定(九)
【微信小程序】-- WXML 模板语法 - 数据绑定(九)
|
6天前
|
小程序 算法 UED
【专栏】小程序图片合成就绪渲染的转变,从异步并发渲染到同步阻塞渲染
【4月更文挑战第29天】本文探讨了小程序图片合成就绪渲染的转变,从异步并发渲染(提高效率,并发处理但可能导致资源竞争和顺序难控)到同步阻塞渲染(顺序可控,资源管理更精细,可能引起界面卡顿)。同步阻塞通过任务队列和阻塞机制确保顺序,解决并发问题。注意避免长时间阻塞,及时释放资源,优化任务效率,并结合异步处理。选择合适方案取决于实际需求,以平衡效率与一致性。
|
6天前
|
小程序 JavaScript
【微信小程序】数据绑定
【微信小程序】数据绑定
23 1
|
6天前
|
小程序 JavaScript
微信小程序——数据绑定
微信小程序——数据绑定
20 0
|
6天前
|
小程序 JavaScript 索引
【微信小程序】-- WXML 模板语法 - 列表渲染 -- wx:for & wx:key(十二)
【微信小程序】-- WXML 模板语法 - 列表渲染 -- wx:for & wx:key(十二)
|
6天前
|
JavaScript 小程序
微信小程序的双向数据绑定和vue的哪里不一样?下拉刷新的方式代码示例
微信小程序的双向数据绑定和vue的哪里不一样?下拉刷新的方式代码示例
|
6天前
|
文字识别 小程序 开发工具
【社区每周】小程序新增Native渲染模式(12月第二期)
【社区每周】小程序新增Native渲染模式(12月第二期)
40 0
|
6天前
|
小程序 前端开发 JavaScript
java后台restTemplate生成二小程序维码,前端渲染
java后台restTemplate生成二小程序维码,前端渲染
|
6天前
|
存储 小程序 JavaScript
微信小程序替换双重循环渲染中报错图片
微信小程序替换双重循环渲染中报错图片
125 0

热门文章

最新文章