zoukankan      html  css  js  c++  java
  • 【小程序】数据绑定

    【原文:数据绑定】

    微信小程序是通过状态模式-单向数据流的方式来实现数据绑定的。

    对象状态化,只要对象状态发送变化,就通知页面更新视图元素。 通过以下三个步骤实现:

    • 识别哪个UI元素被绑定了相应的对象。
    • 监视对象状态的变化。
    • 将所有变化传播到绑定的视图上。
    <view>{{ message }}</view>
    
    Page({
      data: {
        message: 'Hello MINA!'
      }
    })
    

    数据流向是单向的,视图变化不会影响对象状态。

    更多数据绑定方式

    <!-- index.wxml -->
     <!--数据绑定--内容-->
    <view>{{message}}</view>
    
    <!--数据绑定--组件属性-->
    <view id="item-{{id}}">组件属性id-{{id}}</view>
    
    <!--数据绑定---控制属性-->
    <view wx:if="{{condition}}">控制属性{{condition}}</view>
    
    <!--数据绑定---三元运算-->
    <view hidden="{{flag ? true : false}}">Hidden--{{flag}}</view>
    
    <!-- wx:if 有更高的切换消耗而 hidden 有更高的初始渲染消耗。因此,如果需要频繁切换的情景下,用 hidden 更好,如果在运行时条件不大可能改变则 wx:if 较好。 -->
    
    <!--数据绑定---算数运算-->
    <view>{{a + b}} + {{c}} + d</view>
    
    <!--数据绑定---逻辑判断-->
    <view wx:if="{{length > 5}}">6</view>
    
    <!--数据绑定---字符串运算-->
    <view>{{"Hello  " + name}}</view>
    
    <!--数据绑定---数组组合-->
    <!-- 默认数组的当前项的下标变量名默认为 index,数组当前项的变量名默认为 item -->
    <!-- 使用 wx:for-item 可以指定数组当前元素的变量名,使用 wx:for-index 可以指定数组当前下标的变量名: -->
    <view wx:for="{{[zero, 1, 2, 3, 4, 5, 6]}}">{{item}}</view>
    
    <!--数据绑定---对象-->
    <!--最终组合成的对象是{for: 1, bar: 2}-->
    <template is="objectCombine" data="{{for: x, bar: y}}"></template>
    
    <!--数据绑定---扩展运算符 ... 来将一个对象展开-->
    <!--最终组合成的对象是{a: 1, b: 2, c: 3, d: 4, e: 5}-->
    <template is="objectCombine" data="{{...obj1, ...obj2, e: 5}}"></template>
    
    <!--数据绑定---对象的 key 和 value 相同-->
    <!--最终组合成的对象是{foo: 'my-foo', bar:'my-bar'}-->
    <template is="objectCombine" data="{{foo, bar}}"></template>
    
    index.js
    Page({
      data:{
        //内容
        message:'Hello MINA!',
    
        //组件属性
        id: 0,
    
        //控制属性
        condition: true,
    
        //三元运算
        flag:false,
    
        //算数运算
        a: 1,
        b: 2,
        c: 3,
    
        //逻辑判断
        length: 6,
    
        //字符串运算
        name: 'MINA',
    
        //数组组合
        zero: 0,
    
        //对象
        x: 0,
        y: 1,
    
        //对象展开
        obj1: {
            a: 1,
            b: 2
        },
        obj2: {
            c: 3,
            d: 4
        },
        e: 5,
    
        //对象key和value相同
        foo: 'my-foo',
        bar: 'my-bar'
      },
    })

     

    ----------------------------------------

    小程序系列:

      前言

      项目结构

      生命周期

      请求与封装

      数据绑定

      事件

      基础使用: component使用 、 wxs使用 、 节点操作 、 页面跳转 、 缓存

      前端架构浅谈

    ----------------------------------------

  • 相关阅读:
    csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法
    java 随机数 优惠码 生成 随机字串
    JSF primefaces session view expired 会话失效后页面跳转
    primefaces 查询 点击按钮 加载 动画 ajax loader
    时间戳 时区 java mysql
    JBoss 系列十四:JBoss7/WildFly如何加载外部的文件或properties文件
    MQTT 消息 发布 订阅
    mosquitt win32
    Hibernate JPA实体继承的映射(一) 概述
    wildfly jboss 优化配置
  • 原文地址:https://www.cnblogs.com/lilicat/p/10515206.html
Copyright © 2011-2022 走看看