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

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

微信开发文档: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
}

展示效果:

请添加图片描述

相关文章
|
1月前
|
XML 小程序 JavaScript
小程序入门之项目配置说明和数据绑定
小程序入门之项目配置说明和数据绑定
40 1
|
2月前
|
JSON 小程序 前端开发
towxml的使用,在微信小程序中快速将markdown格式渲染为wxml文本
本文介绍了在微信小程序中使用`towxml`库将Markdown格式文本渲染为WXML的方法。文章提供了`towxml`的概述、安装步骤、以及如何在小程序中配置和使用`towxml`进行Markdown解析的详细说明和代码示例。
|
2月前
|
小程序 前端开发 索引
微信小程序中的条件渲染和列表渲染,wx:if ,wx:elif,wx:else,wx:for,wx:key的使用,以及block标记和hidden属性的说明
这篇文章介绍了微信小程序中条件渲染和列表渲染的使用方法,包括wx:if、wx:elif、wx:else、wx:for、wx:key以及block标记和hidden属性的使用。
微信小程序中的条件渲染和列表渲染,wx:if ,wx:elif,wx:else,wx:for,wx:key的使用,以及block标记和hidden属性的说明
|
2月前
|
小程序 JavaScript
微信小程序学习之数据绑定,事件绑定,事件传参与数据同步的学习记录
本文介绍了微信小程序中的数据绑定、事件绑定、事件传参与数据同步的基本概念和使用方法,包括如何在data对象中定义数据、使用mustache语法在wxml中渲染数据、绑定和处理事件、事件对象属性、事件传参以及实现输入框与data数据的同步。
微信小程序学习之数据绑定,事件绑定,事件传参与数据同步的学习记录
|
3月前
|
小程序 JavaScript 前端开发
微信小程序开发时数据是否是双向数据绑定的
微信小程序开发时数据是否是双向数据绑定的
|
3月前
|
缓存 开发框架 JavaScript
人人都能看懂的鸿蒙 “JS 小程序” 数据绑定原理 | 解读鸿蒙源码
人人都能看懂的鸿蒙 “JS 小程序” 数据绑定原理 | 解读鸿蒙源码
|
4月前
|
JavaScript
支付系统---微信支付23-数据绑定和事件,使用Vue调试要添加扩展,F12与console平级就出现了Vue,在支付资料,微信支付,04资料,工具里
支付系统---微信支付23-数据绑定和事件,使用Vue调试要添加扩展,F12与console平级就出现了Vue,在支付资料,微信支付,04资料,工具里
|
4月前
|
小程序 前端开发
【微信小程序-原生开发】实用教程22 - 绘制图表(引入 echarts,含图表的懒加载-获取到数据后再渲染图表,多图表加载等技巧)
【微信小程序-原生开发】实用教程22 - 绘制图表(引入 echarts,含图表的懒加载-获取到数据后再渲染图表,多图表加载等技巧)
252 0
|
1月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
485 7
|
1月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
540 1