1. 绑定事件
在模板中可以通过 @ 符号绑定事件,例如:
1 2 3 | < button @ click = "handleClick" >点击我</ button > 这里绑定了一个 click 事件,并且绑定的函数是 handleClick。 |
2. 事件修饰符
事件修饰符是指在绑定事件时使用的一些特殊符号,用于修改事件的行为。常见的事件修饰符包括:
prevent:阻止默认行为
stop:阻止事件冒泡
capture:使用事件捕获模式
self:只有当事件是从事件源本身触发时才触发回调函数
once:只触发一次回调函数
passive:提高页面滚动的流畅度
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!-- 阻止默认行为 --> < button @ click.prevent = "handleClick" >点击我</ button > <!-- 阻止事件冒泡 --> < button @ click.stop = "handleClick" >点击我</ button > <!-- 使用事件捕获模式 --> < button @ click.capture = "handleClick" >点击我</ button > <!-- 只有当事件是从事件源本身触发时才触发回调函数 --> < button @ click.self = "handleClick" >点击我</ button > <!-- 只触发一次回调函数 --> < button @ click.once = "handleClick" >点击我</ button > <!-- 提高页面滚动的流畅度 --> < button @ click.passive = "handleClick" >点击我</ button > |
.prevent 和 .stop 是两种不同的事件修饰符,虽然它们有一些相似之处,但是在事件处理中有不同的作用。
1 .prevent 用于阻止事件的默认行为,例如阻止 <a> 标签的默认跳转、阻止表单的默认提交等。
如果一个事件被 .prevent 修饰符修饰了,则在事件触发时,不会执行事件的默认行为,而只会执行`绑定的事件处理函数`。2 .stop 用于阻止事件的冒泡传播,事件冒泡是指当一个元素触发事件时,该事件会向父级元素传播。
如果一个事件被 .stop 修饰符修饰了,则在事件触发时,不会向上层元素传播该事件,而只会在当前元素内部进行处理。因此,.prevent 和 .stop 的作用是不同的,但是它们都能够阻止事件的默认行为。
.prevent 用于阻止元素的默认行为,.stop 用于阻止事件的冒泡传播。
3. 内置事件
在 UniApp 中,还有一些内置事件可以使用。这些事件是指在特定情况下自动触发的事件,例如:
onLoad:页面加载完成时触发
onReady:页面初次渲染完成时触发
onShow:页面展示时触发
onHide:页面隐藏时触发
onUnload:页面卸载时触发
这些事件可以在页面或组件中使用,例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | export default { onLoad() { console.log( '页面加载完成' ); }, onReady() { console.log( '页面初次渲染完成' ); }, onShow() { console.log( '页面展示' ); }, onHide() { console.log( '页面隐藏' ); }, onUnload() { console.log( '页面卸载' ); } } |
4. 自定义事件
在 UniApp 中,还可以通过 uni. e m i t 和 u n i . emit 和 uni. emit和uni.on 方法来实现自定义事件的处理。例如:
1 2 3 4 5 6 7 8 9 10 | // 发送自定义事件 uni.$emit( 'myEvent' , {data: '自定义事件参数' }); // 监听自定义事件 uni.$on( 'myEvent' , (data) => { console.log( '接收到自定义事件' , data); }); 这里通过 uni.$emit 发送了一个名为 myEvent 的自定义事件, 并传递了一个参数 {data: '自定义事件参数' }。在需要监听该事件的地方, 可以使用 uni.$on 方法来监听该事件,并在回调函数中处理事件。 |
5. 事件对象
在事件处理函数中,可以通过 $event 参数来获取事件对象,事件对象包含了事件的一些信息,例如:
type:事件类型
target:事件源
currentTarget:当前组件
detail:自定义数据
例如:
1 2 3 4 5 6 7 8 9 10 | <button @click= "handleClick" >点击我</button> methods: { handleClick($event) { console.log( '事件类型' , $event.type); console.log( '事件源' , $event.target); console.log( '当前组件' , $event.currentTarget); console.log( '自定义数据' , $event.detail); } } |
以上就是 UniApp 中常用的事件处理方式,包括绑定事件、事件修饰符、内置事件、自定义事件和事件对象。
掌握这些知识,可以更加灵活地处理事件,实现丰富的用户交互效果。