小程序组件 —— 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 窗口实时看到具体的输出;

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

相关推荐
lcc1872 小时前
Vue3 其它Composition API
前端·vue.js
tsumikistep2 小时前
【前后端】Vue 基本使用方式(下)—— 条件渲染、双向绑定、事件绑定
前端·javascript·vue.js
雨雨雨雨雨别下啦2 小时前
【从0开始学前端】TypeScript语法总结
前端·typescript
2501_915918412 小时前
iOS 手机抓包软件怎么选?HTTPS 调试、TCP 数据流分析与多工具组合的完整实践
android·ios·智能手机·小程序·https·uni-app·iphone
敲敲了个代码2 小时前
一天面了6个前端开发,水平真的令人堪忧啊
前端·javascript·学习·面试·webpack·typescript·前端框架
恋猫de小郭2 小时前
用 AI 做了几个超炫酷的 Flutter 动画,同时又差点被 AI 气死
前端·flutter·aigc
十五喵2 小时前
游戏助手|游戏攻略|基于SprinBoot+vue的游戏攻略系统小程序(源码+数据库+文档)
vue.js·游戏·小程序
某空m2 小时前
【Android】组件化搭建
android·java·前端
零基础的修炼2 小时前
[项目]基于正倒排索引的Boost搜索引擎---服务和前端模块
前端
毕设源码-赖学姐2 小时前
【开题答辩全过程】以 防诈反诈宣传教育小程序为例,包含答辩的问题和答案
小程序