程序员书籍笔记 程序员书籍笔记
  • HTML
  • CSS
  • JavaScript
  • 前端知识
  • Vue
  • MarkDown
  • git
  • Node.js
  • Linux
  • 51单片机
  • 四级
  • 第一学期课程
  • 操作系统
  • 计算机网络
  • 数据结构
  • 计算机组成原理
  • HTML5
  • Electron
  • 日记便签
  • 前端导航
GitHub (opens new window)
  • HTML
  • CSS
  • JavaScript
  • 前端知识
  • Vue
  • MarkDown
  • git
  • Node.js
  • Linux
  • 51单片机
  • 四级
  • 第一学期课程
  • 操作系统
  • 计算机网络
  • 数据结构
  • 计算机组成原理
  • HTML5
  • Electron
  • 日记便签
  • 前端导航
GitHub (opens new window)
  • Vue

  • Nuxt

  • Echarts

  • Node

  • git

  • express

  • 微信小程序

    • 基本介绍
    • 宿主环境介绍
    • 基础使用
      • 基础使用
      • 数据绑定
        • 数据改值
      • 事件绑定
        • 常见事件
        • 事件对象e
        • 事件传参
      • 条件渲染
        • if...elif...else
        • block标签
        • hidden
        • wx:for
        • wx:key
    • wxss基础使用
    • 数据请求
    • 页面
    • 组件
    • 外部资源
  • Spring

  • 后端知识

  • Markdown

  • project

  • 自用文档查询

  • 框架和软件
  • 微信小程序
yuadh
2022-07-19
目录

基础使用

# 基础使用

# 数据绑定

Page({
  // 页面的初始化数据
  data:{
    info:'hello world' ,
    image:'https://url...',
   	randomNum: Math.random()*10,
    randomMin:Math.random().toFixed(2)
  }
})
1
2
3
4
5
6
7
8
9

在 wxml 中可以使用其数据、属性、三元运算、算术运算

<view>{{info}}</view>
<image src="{{image}}"></image>
<view>{{randomNum>=5?'>5':'<5'}}</view>
<view>{{randomMin*100}}</view>
1
2
3
4

# 数据改值

Page({
  data:{
    count:0
  },
  changeCount(){
    this.setData({
      count:this.data.count+1
    })
  }
})
1
2
3
4
5
6
7
8
9
10
<button type='primary' bindtap='changeCount'>按钮</button>
1

# 事件绑定

# 常见事件

类型 绑定方式 事件描述
tap bindtap 或 bind:tap 手指触摸后离开
input bindinput 或 bind:input 文本框输入
change bingdchange 或 bind:change 状态发生改变

bindtap使用

Page({
  btnTapHandler(e){
    console.log(e)
  }
})
1
2
3
4
5
<button type='primary' bindtap='btntapHandler'>按钮</button>
1

bindinput 使用

Page({
  inputHandler(e){
    console.log(e.detail.value)
  }
})
1
2
3
4
5
<input bindinput'inputHandler'></input>
1

# 事件对象e

属性 类型 说明
type String 事件类型
timeStamp Integer 页面打开到触发事件所经历的毫秒数
target Object 触发事件的组件的一些属性集合
currentTarget Object 当前组件的一些属性集合
detail Object 额外的信息
touches Array 触摸事件,当前停留在屏幕中的触摸点信息的数组
changedTouches Array 触摸事件,当前变化的触摸点信息的数组

target和currentTarget区别

target 是触发该事件的源头组件,而 currentTarget是当前事件所绑定的组件

点击内部的按钮时,点击事件以冒泡的方式向外扩散,也会触发外层 view 的 tap 事件处理函数,此时对于外层的 view 来说

e.target 指向的是触发事件的源头组件,因此是内部的按钮组件

e.currentTarget 指向的是当前正在触发事件的那个组件,也就是当前的view 组件本身

​

# 事件传参

<button type='primary' bindtap="btnTap" data-info="{{2}}" >按钮</button>
1

语法 :data-*(参数名)={{}}

取值:e.target.dataset.*(参数名)

Page({
  btnTap(e){
    this.setDate({
      count:this.data.count+e.target.dataset.info
    })
  }
})
1
2
3
4
5
6
7

# 条件渲染

# if...elif...else

<view wx:if="{{type===1}}">男</view>
<view wx:elif="{{type===2}}">女</view>
<view wx:else>保密</view>
1
2
3

# block标签

block 标签并不是一个组件,它是一个包裹性质的容器,不会在页面中做任何渲染

可以利用 block 标签对多个组件进行展示和隐藏

<block wx:if="{{true}}">
	<view wx:if="{{type===1}}">男</view>
	<view wx:elif="{{type===2}}">女</view>
	<view wx:else>保密</view>
</block>
1
2
3
4
5

# hidden

<block hidden="{{true}}">
	<view wx:if="{{type===1}}">男</view>
	<view wx:elif="{{type===2}}">女</view>
	<view wx:else>保密</view>
</block>
1
2
3
4
5

hidden 和 wx:if 的对比

hidden 是切换样式的方式 ,控制元素的显示与隐藏,实际上还存在改元素

wx:if 是对元素的移除和创建

在频繁切换的应用场景中,推荐使用 hidden

# wx:for

<view wx:for = "{{array}}">
	索引固定使用:{{index}} 当前项固定使用:{{item}}
</view>
1
2
3

同时也可以改变默认的索引值和当前项

<view wx:for = "{{array}}" wx:for-index='idx' wx:for-item='itemName'>
	索引使用:{{idx}} 当前项使用:{{itemName}}
</view>
1
2
3

# wx:key

指定唯一 key 值,提高渲染效率

<view wx:for = "{{array}}" wx:for-index='idx' wx:for-item='itemName' wx:key='id'>
	索引使用:{{idx}} 当前项使用:{{itemName}}
</view>
1
2
3

key 可以是item 中的某一项 ,直接写属性名

编辑 (opens new window)
上次更新: 2023/02/07, 14:51:48
宿主环境介绍
wxss基础使用

← 宿主环境介绍 wxss基础使用→

Theme by Vdoing | Copyright © 2021-2023 yuadh
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×