小程序组件 —— 31 事件系统 - 事件绑定和事件对象

小程序中绑定事件和网页开发中绑定事件几乎一致,只不过在小程序不能通过 on 的方式绑定事件,也没有 click 等事件,小程序中绑定事件使用 bind 方法,click 事件也需要使用 tap 事件来进行代替,绑定事件的方式有两种:

  • bind:事件名,bind 后面需要跟上冒号,冒号后面跟上事件名,例如:<view bind:tap="fnName"></view>
  • bind 事件名,bind 后面直接跟上事件名,例如:<view bindtap="fnName"></view>

事件处理函数需要写到 .js 文件中,在 .js 文件中需要调用小程序提供的 Page 方法来注册小程序的页面,我们可以直接在 Page 方法中创建事件处理函数;

下面在微信开发者工具中演示一下:

  • 选择 cate 文件夹下面的 cate.wxml 文件,分别填写两种事件绑定方法:

    xml 复制代码
    <button type="primary" bind:tap="handleClick">绑定事件</button>
    
    <button type="warn" bindtap="handleClick">绑定事件</button>
  • 选择 cate 文件夹下面的 cate.js 文件,填写对应的事件函数,注意事件函数必须填写在 Page 方法中:

    typescript 复制代码
    Page({
    	handleClick () {
        console.log("点击事件触发了")
    	}
    })

编辑完成刷新后,点击按钮,可以在 console 界面看到打印的信息,如下图:

当组件触发事件时,绑定的事件处理函数会收到一个事件对象;在触发事件的时候,事件处理程序会默认给事件处理函数添加一个参数,默认命名为 event,所以我们的事件处理函数可以写为:

typescript 复制代码
	Page({
		handleClick (event) {
        // console.log("点击事件触发了");
        console.log(event);
  		}
	})

具体表现如下:

在点击按钮之后,console 区域会输出一个对象,这个对象记录了事件触发时的一些信息,我们可以使用这个对象来获取相关的数据;

假如我们想获取用户在输入框输入的信息,先在 cate.wxml 中添加一个输入框:

html 复制代码
<!-- 在小程序中,input 输入框默认没有边框,需要自己添加样式 -->
<input type="text" bindinput="getInputValue" />

由于小程序中的 input 输入框默认没有边框,所以可以在根目录的 app.scss 中统一对 input 组件设置样式,如下:

css 复制代码
input {
  border: 1px solid #cccccc;
}

接着在 cate.js 文件中添加事件处理函数,如下:

typescript 复制代码
Page({
	getInputValue(event){
    console.log(event.detail.value);
  }
})

具体的效果如下所示:

在 input 输入信息后,在 console 窗口实时看到具体的输出;

参考视频:尚硅谷微信小程序开发教程

相关推荐
qq_589666054 小时前
TypeScript 完整入门教程
前端·javascript·typescript
2501_915918414 小时前
深入对比iOS开发中常用性能监控工具的底层原理与优缺点分析
android·ios·小程序·https·uni-app·iphone·webview
星栈独行6 小时前
翻完 Pi 源码:它和 Codex、Claude Code 有何不同
开发语言·javascript·人工智能·程序人生
落落Plus6 小时前
浏览器缓存机制详解
javascript·缓存·浏览器缓存
用户059540174467 小时前
LLM对话记忆测试踩坑实录:手工回归30分钟,自动化后2分钟发现3个隐藏Bug
前端·css
Ashley的成长之路9 小时前
前端性能优化实战手册·第2篇:资源加载策略全解
前端·性能优化·资源加载·http/3·性能优化实战·资源加载优化
浅水壁虎9 小时前
vue基础(第二章 )
前端·javascript·vue.js
界面开发小八哥9 小时前
界面控件DevExtreme v26.1新版亮点——支持Angular 22
前端·javascript·angular.js·devexpress·ui开发·devextreme
Getflare9 小时前
前端 + UI 设计 + AI:这不是三个工种,是一个新三角能力模型(附自检清单)
前端·人工智能·ui