基础语法2
列表循环
| wx:for="数组或对象" | wx:for-item="循环项名称" | wx:for-index="循环项索引" | 
|---|---|---|
- 
wx:for-key="唯一值",用于提高列表渲染的性能- wx:for-key="*this",遍历数组的每一项,要求当前数组每一项不能有重复
 
- 
如果只有一层循环,( wx:for-item和wx:for-index)都可以省略,默认情况下,我们会拿到item和index
<!-- 遍历数组 -->
<view>
  <!-- view相当于web中的div -->
  <!-- <view wx:for="{{anime}}" wx:for-item="item" wx:for-index="index" wx:key="index"> -->
  <view wx:for="{{anime}}" wx:key="index">
    名称:{{item}}
  </view>
</view>
//遍历对象
<view>
  <view wx:for="{{person}}" wx:key="key" wx:for-item="value">
    {{value}}
  </view>
</view>
条件渲染
- wx:if="",wx:elif="",wx:else=""
- 切换显示时直接将元素从页面移除掉
 
<view>
  <view wx:if="{{false}}">显示1</view>
  <view wx:elif="{{true}}">显示2</view>
  <view wx:else="{{false}}">显示3</view>
</view>
- hidden
- 在标签上加入属性hidden可以实现隐藏
- hidden="{{true}} "同样可以实现隐藏
- 切换显示时设置元素display为none
 
<view>
  <view hidden="{{false}}">hidden</view>
</view>
[ ]: 如果标签不是需要频繁的切换显示,优先选择wx:if,否则使用hidden
事件绑定
- 通过将bind与事件类型字符串相连即可绑定一个事件,如bindinput
常见的事件类型
- input
- 文本输入框在正在输入内容时触发
 
<input type="text" bindinput="handleInput" />
- tab
- 点击时触发。小程序没有click,tab即为点击
 
<button bindtap="handleTab">+</button>
- touchmove
- 手指触摸后移动触发
 
<view bindtouchmove="handleMove">
    move!
</view>
- touchcancel
- 手指触摸动作被打断时触发,如弹窗,来电
 
<view bindtouchcancel="handleCancel">
    cancel!
</view>
更多事件类型见: (https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/event.html#事件详解)
事件触发
- 无法在小程序中的事件中直接传参,需通过自定义属性"data-"的方式传参
<button bindtap="handleTab" data-operation="{{1}}">+</button>
- 在对应的page页面中处理事件时
- 通过setData设置data中的值
- 直接修改this.data,而不调用this.setData(),是无法改变当前页面的状态的,会导致数据不一致
 
- 通过事件源获取的值
 
- 通过setData设置data中的值
<input type="text" bindinput="handleInput" />
Page({
  handleInput(e) {
    this.setData({
      num: e.detail.value
    })
  },
  handletab(e) {
    this.setData({
      // 在vue中调用data中的num直接使用this.num,而在小程序中,需通过this.data.num
      // 成功拿到通过data-传过来的参数
      num: e.currentTarget.dataset.operation + Number(this.data.num)
    })
  }

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号