English
监听自定义事件。事件可以由 uni.$emit 触发。回调函数会接收 uni.$emit 传递的参数。
name | type | required | default | description |
---|---|---|---|---|
eventName | string | YES | - | - |
callback | () => void | YES | - | - |
移除自定义事件监听器。如果没有指定事件名,则移除所有事件监听器。如果提供事件名,则移除该事件的所有监听器。如果提供了事件名和回调,则只移除这个回调的监听器。
name | type | required | default | description |
---|---|---|---|---|
eventName | string | YES | - | - |
callback | () => void | YES | - | - |
监听一个自定义事件。事件只触发一次,在第一次触发之后移除事件监听器。
name | type | required | default | description |
---|---|---|---|---|
eventName | string | YES | - | - |
callback | () => void | YES | - | - |
触发自定义事件,附加的参数会传递给事件监听器。
name | type | required | default | description |
---|---|---|---|---|
eventName | string | YES | - | - |
args | any | NO | - | - |
<template>
<!-- #ifdef APP -->
<scroll-view style="flex: 1">
<!-- #endif -->
<view>
<button @click="on">开始监听</button>
<button @click="once">监听一次</button>
<button @click="off">取消监听</button>
<button @click="emit">触发监听</button>
<button @click="clear">清空消息</button>
<view class="box">
<view>收到的消息:</view>
<view>
<view v-for="(item, index) in log" :key="index">{{ item }}</view>
</view>
</view>
</view>
<!-- #ifdef APP -->
</scroll-view>
<!-- #endif -->
</template>
<script lang="uts">
export default {
data() {
return {
log: [] as string[],
}
},
methods: {
fn(res: string) {
this.log.push(res)
},
on() {
uni.$on('test', this.fn)
},
once() {
uni.$once('test', this.fn)
},
off() {
uni.$off('test', this.fn)
},
emit() {
uni.$emit('test', 'msg:' + Date.now())
},
clear() {
this.log.length = 0
},
},
}
</script>
<style>
.box {
padding: 10px;
}
</style>
name | type | optinal | default | description |
---|---|---|---|---|
errMsg | string | YES | - | 错误信息 |