微信小程序--》数据绑定和事件绑定

简介: ⚓经过web前端开发的学习,相信大家对于前端开发有了一定深入的了解,今天我开设了微信小程序,主要想从移动端开发方向进一步发展,而对于我来说写移动端博文的第一站就是小程序开发,希望看到我文章的朋友能对你有所帮助。

📚WXML模板语法—数据绑定

📰数据绑定的基本原则

在data 中定义数据

在 WXML 中使用数据

📰在 data 中定义页面数据

在页面对应的 .js 文件中,把数据定义到 data 对象中即可:

Page({
data: {
//字符串类型的数据info:'init data',
//数据类型的数据msgList:[{msg:'hello'},{msg:'world'}]
  }
})

📰Mustache 语法的格式

把data的数据绑定到页面中渲染,使用 Mustache 语法(双大括号)把变量包起来即可。语法格式:

<view>{{要绑定的数据}}</view>

图片.png

📰Mustache 语法应用场景

● 绑定内容        ● 绑定属性        ● 运算(三元运算、算术运算等)

动态绑定内容

页面数据如下:

Page({
data: {
say:'hello world'  }
})

页面结构如下:

<view>{{say}}</view>

动态绑定属性

页面数据如下:

Page({
data: {
imgSrc:'https://www.baidu.com'  }
})

页面结构如下:

<imagesrc='{{imgSrc}}'></image>

图片.png

三元运算

页面数据如下:

Page({
data: {
randomNum:Math.random() *12//生成12以内的随机数  }
})

页面结构如下:

<view>{{ randomNum >=8 ? '生成的随机数大于等于8':'生成的随机数小于8' }}</view>

图片.png

算数运算

页面数据如下:

Page({
data: {
randomNum:Math.random()*toFixed(2) //生成一个带有两位小数的随机数  }
})

页面结构如下:

<view>生成100以内的随机数:{{randomNum*100}}</view>

图片.png

📚WXML模板语法—事件绑定

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

📰小程序中常用的事件

类型 绑定方式 事件描述
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 则是当前事件所绑定的组件,举例:

<viewclass="out-view"outerHandler><buttontype="primary">按钮</button></view>

图片.png

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

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

●e.currentTarget指向的是当前正在触发事件的那个组件,因此,e.currentTarget是当前的view组件

📰bindtap 的语法格式

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

① 通过 bindtap,可以为组件绑定 tap 触摸事件,语法格式如下:

<buttontype="primary"bindtap="btnTapHandler">按钮</button>

② 在页面中的 .js 文件中定义对应的事件处理函数,事件参数通过形参 event(一般简写:e)来接收:

Page({
btnTapHandler(e){ //按钮的事件处理函数console.log(e) //事件参数对象e    }
})

图片.png

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

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

<buttontype="primary"bindtap="changeCount">+1</button>
Page({
data: {
count:0  },
//修改count的值changeCount(){
this.setData({
count:this.data.count+1    })
  }
})

📰事件传参

可以为组件提供 data-* 自定义属性传参,其中 * 代表着参数的名字,示例代码如下:

<buttonbindtap="btnHandler"data-info="{{2}}">事件传参</button>

info 会被解析为 参数的名字  、数值 2 会被解析为参数的值。

<buttontype="primary"bindtap="btnTap"data-info="{{2}}">+2</button>
Page({
//修改count的值changeCount(){
this.setData({
count:this.data.count+1    })
  },
btnTap(e){
this.setData({
count:this.data.count+e.target.dataset.info    })
  },
})

📰bindinput 的语法格式

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

① 通过 bindinput ,可以为文本框绑定输入事件:

<inputbindinput='inputHandler'></input>

② 在页面的 .js 文件中定义事件处理函数

inputHandler(e){
// e.detail.value 是变化过后,文本框最新的值console,log(e.detail.value)
}

图片.png

📰文本框与 data 之间的数据同步

①定义数据

Page({
data:{
msg:'你好'    }
})

②渲染结构

<inputvalue='{{msg}}'bindinput='iptHandler'></input>

③美化样式

input{
border:1pxsolid#eee;
padding:5px;
margin:5px;
border-radius:3px;
}

④绑定 input 事件处理函数

//文本框内容改变事件iptHandler(e){
this.setData({
//通过 e.detail.value 获取到文本框最新的值msg:e.detail.value    })
}

📚小程序—API

这里补充一下API的知识:小程序中的 API 是由宿主环境提供的,通过这些丰富的小程序 API ,开发者可以方便的调用微信提供的能力,例如:获取用户信息、本地储存、支付功能等。

📰API的三大分类

① 事件监听 API

       ● 特点:以 on 开头,用来监听某些事件的触发

       ● 举例:wx.onWindowResize(function callback) 监听窗口尺寸变化的事件

② 同步 API

       ● 特点1:以Sync结尾的 API 都是同步 AP

       ● 特点2:同步 API 的执行结果,可以通过函数返回值直接获取,如果执行出错会抛出异常

       ● 举例:wx.setStorageSync("key","value") 向本地存储中写入内容

③ 异步 API

       ● 特点:类似于 jQuery 中的 $.ajax(options) 函数,需通过 success、fail、compele接收调用的结果。

       ● 举例:wx.request() 发起网络数据请求,通过success回调函数接收数据。

相关文章
|
6月前
|
小程序 JavaScript
微信小程序的事件绑定方式
微信小程序的事件绑定方式
120 4
|
2月前
|
XML 小程序 JavaScript
小程序入门之项目配置说明和数据绑定
小程序入门之项目配置说明和数据绑定
48 1
|
3月前
|
小程序 JavaScript
微信小程序学习之数据绑定,事件绑定,事件传参与数据同步的学习记录
本文介绍了微信小程序中的数据绑定、事件绑定、事件传参与数据同步的基本概念和使用方法,包括如何在data对象中定义数据、使用mustache语法在wxml中渲染数据、绑定和处理事件、事件对象属性、事件传参以及实现输入框与data数据的同步。
微信小程序学习之数据绑定,事件绑定,事件传参与数据同步的学习记录
|
4月前
|
小程序 JavaScript 前端开发
微信小程序开发时数据是否是双向数据绑定的
微信小程序开发时数据是否是双向数据绑定的
|
4月前
|
缓存 开发框架 JavaScript
人人都能看懂的鸿蒙 “JS 小程序” 数据绑定原理 | 解读鸿蒙源码
人人都能看懂的鸿蒙 “JS 小程序” 数据绑定原理 | 解读鸿蒙源码
|
5月前
|
JavaScript
支付系统---微信支付23-数据绑定和事件,使用Vue调试要添加扩展,F12与console平级就出现了Vue,在支付资料,微信支付,04资料,工具里
支付系统---微信支付23-数据绑定和事件,使用Vue调试要添加扩展,F12与console平级就出现了Vue,在支付资料,微信支付,04资料,工具里
|
7月前
|
小程序 JavaScript Java
【微信小程序】事件绑定
【微信小程序】事件绑定
|
1月前
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
42 0
在线课堂+工具组件小程序uniapp移动端源码
|
2月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
381 3
|
2月前
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
61 0
微信小程序更新提醒uniapp