微信小程序学习——7.6【模板WXML】

news/2024/7/20 1:27:52 标签: 微信小程序, 学习, 小程序

模板WXML

  1. 标签名字有点不一样
    HTML标签 div, p, span等
    小程序WXML view, button, text等
  2. 多了一些 wx:if 这样的属性(界面及状态的控制)以及 {{ }} 这样的表达式(数据绑定)
  3. MVVM 的开发模式(例如 React, Vue),提倡把渲染和逻辑分离
    WXML是框架设计的⼀套标签语⾔,结合基础组件、事件系统,可以构建出⻚⾯的结构

数据绑定

(一)普通写法
index.wxml

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

(二)组件属性
index.wxml

<view id="item-{{id}}"> </view>

index.js

Page({
  data: {
    message: 'Hello MINA!'
  }
})

(三)bool类型
不要直接写 checked=“false”,其计算结果是⼀个字符串

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

5.2 运算

(一)三元运算

<view hidden="{{flag ? true : false}}"> Hidden </view>

(二)if 逻辑判断

<view wx:if="{{length > 5}}"> </view>

注意:花括号和引号之间如果有空格,将最终被解析成为字符串,切记不要留有空格

5.3 列表渲染

(一)wx:for

  • 项的变量名默认为 item wx:for-item 可以指定数组当前元素的变量名
  • 下标变量名默认为 index wx:for-index 可以指定数组当前下标的变量名
  • wx:key ⽤来提⾼数组渲染的性能
  • wx:key 绑定的值 有如下选择: string类型,表⽰循环项中的唯⼀属性 如
list:[{id:0,name:"炒饭"},{id:1,name:"炒面"}]
wx:key="id"

保留字 *this ,它的意思是 item 本⾝ ,*this 代表的必须是 唯⼀的字符串和数组。

list:[1,2,3,4,5]
wx:key="*this"
<view wx:for="{{array}}" wx:key="id">
  {{index}}: {{item.message}}
</view>

Page({
  data: {
    array: [{
      id:0,
      message: 'foo',
    }, {
      id:1,
      message: 'bar'
    }]
  }
})

(二)block
渲染⼀个包含多节点的结构块 block最终不会变成真正的dom元素

<block wx:for="{{[1, 2, 3]}}" wx:key="*this" >
  <view> {{index}}: </view>
  <view> {{item}} </view>
</block>

5.4 条件渲染

(一)wx:if
在框架中,使⽤ wx:if=“{{condition}}” 来判断是否需要渲染该代码块:

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

(二)hidden(类似 wx:if)

<view hidden="{{condition}}"> True </view>

频繁切换 ⽤ hidden
不常使⽤ ⽤ wx:if

5.5 事件绑定

⼩程序中绑定事件,通过bind关键字来实现。如 bindtap bindinput bindchange 等
代码:

<!-- 1.需要给input标签绑定 input事件
绑定关键字 bindinput
2.如何获取输入框的值
通过事件源对象获取e.detail.value
3.把输入框的值赋值到data中
错误:this.data.num = e.detail.value
正确:
this.setData({
  num: e.detail.value
})
4.需要加入一个点击事件
      bindtab
      无法在小程序中的事件直接传参
      通过自定义属性的方式传递参数
      事件源中获取自定义属性 -->

<input type="text" bindinput="handleInput"/>
<button bindtab="handleTab" data-operation="{{1}}">+</button>
<button bindtab="handleTab" data-operation="{{-1}}">-</button>
<view>{{num}}</view>

Page({
  data: {
    num: '0'
  },
  handleInput(e) {
    // 绑定的事件
    console.log(e)
    console.log(e.detail.value);
    this.setData({
      num: e.detail.value
    })
  },
  // 加减按钮事件
  handleTab(e) {
    console.log(e);
    // 获取自定义属性operation
    const operation = e.currentTarget.dataset.operation
    this.setData({
      num: this.data.num + operation
    })
  }
})


http://www.niftyadmin.cn/n/970361.html

相关文章

51nod1621 花钱买车牌 排序+贪心

1621 花钱买车牌 题目来源&#xff1a; CodeForces 基准时间限制&#xff1a;1 秒 空间限制&#xff1a;131072 KB 分值: 20 难度&#xff1a;3级算法题收藏关注一个车牌号由n位数字组成。如果一个车牌至少有k位数字是相同的&#xff0c;那么我们就说这个车牌漂亮的车牌。现在华…

活学活用! 用Local Storage实现多人聊天室

最终效果 Storage用于在浏览器中保存数据, storage分两种 第一种是Local Storage, 用于长时间保存数据(较为常用)第二种是 Session Storage, 关掉浏览器, 保存的数据就会清空(具体使用用法和Local Storage相似, 可以套用Local Storage的方法)篇幅有限,这里以Local Storage为例 …

淘宝网结构分析

很多网站都已经开始实现html5了 要开始加强了 对于 ie 不支持html5 采用再页面首部导入 html5.js 来解决 大致是创建一些标签 对于新标签都要display &#xff1a;block 类似于div <!--[if IE]><script src"html5.js"></script><![endif]-->…

51nod1572 宝岛地图 预处理

1572 宝岛地图 题目来源&#xff1a; CodeForces 基准时间限制&#xff1a;1 秒 空间限制&#xff1a;131072 KB 分值: 20 难度&#xff1a;3级算法题收藏关注勇敢的水手们到达了一个小岛&#xff0c;在这个小岛上&#xff0c;曾经有海盗在这里埋下了一些宝藏。然而&#xff0c…

微信小程序学习——7.7【样式 WXSS】

样式 WXSS WXSS( WeiXin Style Sheets )是⼀套样式语⾔&#xff0c;⽤于描述 WXML 的组件样式。 与 CSS 相⽐&#xff0c;WXSS 扩展的特性有&#xff1a; 响应式⻓度单位rpx 样式导⼊ 6.1 尺寸单位 &#xff08;1&#xff09;rpx &#xff08;responsive pixel&#xff09;…

51nod1632 B君的连通

1632 B君的连通 基准时间限制&#xff1a;1 秒 空间限制&#xff1a;131072 KB 分值: 20 难度&#xff1a;3级算法题收藏关注B国拥有n个城市&#xff0c;其交通系统呈树状结构&#xff0c;即任意两个城市存在且仅存在一条交通线将其连接。A国是B国的敌国企图秘密发射导弹打击B国…

LOJ 10189 仓库建设 ——斜率优化dp

题目&#xff1a;https://loj.ac/problem/10189 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define db double #define ll long long using namespace std; const int N1e65; int n,d[N],p[N],C[N]; ll s[N],c[N],d…

微信小程序学习——7.8【常见组件】

常见组件 重点讲解⼩程序中常⽤的布局组件 view,text,rich-text,button,image,navigator,icon,swiper,radio,checkbox 等 7.1 view 代替 原来的 div 标签 <view hover-class"h-class">点击我试试</view>7.2 text ⽂本标签只能嵌套text⻓按⽂字可以复…