小程序 | 小程序中常用的事件 + 事件对象的属性列表 +小程序事件传参 + 小程序全局配置 + 小程序页面配置 + 小程序发起网络数据请求

  • 能够使用 WXML 模板语法渲染页面结构
  • 能够使用 WXSS 样式美化页面结构
  • 能够使用 app.json 对小程序进行全局性配置
  • 能够使用 page.json 对小程序页面进行个性化配置
  • 能够知道如何发起网络数据请求

一、WXML 模板语法

数据绑定

  1. 在 data 中定义数据
    在页面对应的 .js 文件中,把数据定义到 data 对象中即可
    在这里插入图片描述

  2. 在 WXML 中使用数据
    把data中的数据绑定到页面中渲染,使用 Mustache 语法(双大括号)将变量包起来即可。直接使用即可!!!
    在这里插入图片描述

Mustache 语法的主要应用场景如下:

  1. 动态绑定内容

  2. 绑定属性
    在这里插入图片描述

  3. 运算(三元运算、算术运算等)
    在这里插入图片描述

如果要查看当前面板里的数据,可以用 调试器里面的 -> AppData

算术运算:
在这里插入图片描述

事件绑定

事件是渲染层到逻辑层的通讯方式。通过事件可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理。
在这里插入图片描述

⭐小程序中常用的事件

类型 绑定方式 事件描述
tap bindtap 或 bind:tap 手指触摸后马上离开,类似于 HTML 中的 click 事件
input bindinput 或 bind:input 文本框的输入事件
change bindchange 或 bind:change 状态改变时触发

⭐事件对象的属性列表

当事件回调触发的时候,会收到一个事件对象 event,它的详细属性如下表所示

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

target 和 currentTarget 的区别

target 是触发该事件的源头组件,而 currentTarget 则是当前事件所绑定的组件。
在这里插入图片描述
点击内部的按钮时,点击事件以冒泡的方式向外扩散,也会触发外层 view 的 tap 事件处理函数。

此时,对于外层的 view 来说:

  • e.target 指向的是触发事件的源头组件,因此,e.target 是内部的按钮组件
  • e.currentTarget 指向的是当前正在触发事件的那个组件,因此,e.currentTarget 是当前的 view 组件

bindtap 的语法格式

在小程序中,不存在 HTML 中的 onclick 鼠标点击事件,而是通过tap 事件来响应用户的触摸行为。

  1. 通过 bindtap,可以为组件绑定 tap 触摸事件
    在这里插入图片描述
  2. 在页面的 .js 文件中定义对应的事件处理函数,事件参数通过形参 event(一般简写成 e) 来接收
    在这里插入图片描述

在事件处理函数中为 data 中的数据赋值

通过调用 this.setData(dataObject) 方法,可以给页面 data 中的数据重新赋值

dataObject 是对象形式

在这里插入图片描述

⭐事件传参

小程序中的事件传参比较特殊,不能在绑定事件的同时为事件处理函数传递参数。例如,下面的代码将不能正常工作:
在这里插入图片描述
因为小程序会把 bindtap 的属性值,统一当作事件名称来处理,相当于要调用一个名称为 btnHandler(123) 的事件处理函数。

  • 可以为组件提供 data-* 自定义属性传参,其中 * 代表的是参数的名字
    在这里插入图片描述
    最终:

    • info 会被解析为参数的名字
    • 数值 2 会被解析为参数的值
  • 在事件处理函数中,通过 event.target.dataset参数名 即可获取到具体参数的值
    在这里插入图片描述

bindinput 的语法格式

在小程序中,通过 input 事件来响应文本框的输入事件,语法格式如下:

  1. 通过 bindinput,可以为文本框绑定输入事件
    在这里插入图片描述
  2. 在页面的 .js 文件中定义事件处理函数,用e.detail.value来获取文本框最新的值
    在这里插入图片描述

实现文本框和 data 之间的数据同步

实现步骤:

  1. 定义数据
    在这里插入图片描述

  2. 渲染结构
    在这里插入图片描述

  3. 美化样式
    在这里插入图片描述

  4. 绑定 input 事件处理函数
    在这里插入图片描述

给input框加上一个value值【msg】value="{ {msg}}"
然后给input框绑定输入事件bindinput
当input输入变化的时候,就通过调用this.setDat修改【msg】的值
通过e.detail.value让【msg】的值等于 当前input框最新的值

条件渲染

wx:if

在小程序中,使用 wx:if="{ {condition}}" 来判断是否需要渲染该代码块

也可以用 wx:elifwx:else 来添加 else 判断

// .wxml
<view wx:if="{
    {type == 1}}"></view>
<view wx:elif="{
    {type ==2}}"></view>
<view wx:else>保密</view>
// .js
Page({
   
	data:{
   
		type:
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小程序事件传参页面传参都是非常常见的场景,具体实现方式如下: ### 事件传参小程序,可以通过 `data-*` 属性数据传递给事件处理函数。在 WXML ,通过 `bind:eventName` 或 `catch:eventName` 绑定事件处理函数,例如: ```html <view bind:tap="handleTap" data-id="123">点击我</view> ``` 在事件处理函数,可以通过 `event.currentTarget.dataset` 获取 `data-*` 属性值,例如: ```javascript Page({ handleTap(event) { const id = event.currentTarget.dataset.id console.log('id:', id) // 输出:id: 123 } }) ``` ### 页面传参小程序,可以通过路由传参的方式将数据传递给目标页面。在源页面,通过 `wx.navigateTo` 或 `wx.redirectTo` 方法跳转到目标页面,并传递参数,例如: ```javascript wx.navigateTo({ url: '/pages/detail/detail?id=123' }) ``` 在目标页面,可以通过 `onLoad` 生命周期函数获取路由参数,例如: ```javascript Page({ onLoad(options) { const id = options.id console.log('id:', id) // 输出:id: 123 } }) ``` 需要注意的是,路由参数的类型都是字符串类型,如果需要传递数字或其他类型的数据,需要进行类型转换。例如: ```javascript wx.navigateTo({ url: '/pages/detail/detail?id=' + 123 }) ``` 在目标页面,需要将字符串类型的参数转换为数字类型,例如: ```javascript Page({ onLoad(options) { const id = parseInt(options.id) console.log('id:', id) // 输出:id: 123 } }) ``` 除了路由传参,还可以通过全局变量、缓存、事件总线等方式进行数据传递。需要根据具体场景选择合适的方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值