監(jiān)聽子組件事件和監(jiān)聽普通事件類似,如:
// api-index.stml:
<template>
<view>
<api-test onresult="onGetResult"></api-test>
</view>
</template>
<script>
import './components/api-test.stml'
export default {
name: 'app-index',
methods: {
onGetResult(e){
console.log(e.detail.msg);
}
}
}
</script>
以上示例中監(jiān)聽了子組件的result事件,子組件里面通過fire方法來觸發(fā)監(jiān)聽的事件:
// app-test.stml:
<template>
<text onclick="onclick">Hello App!</text>
</template>
<script>
export default {
name:'api-test',
methods:{
onclick(){
let detail = {msg:'Hi'};
this.fire('result', detail);
}
}
}
</script>
fire方法有兩個參數(shù),第一個參數(shù)為事件名稱,第二個參數(shù)為要傳遞的自定義數(shù)據(jù),在父組件監(jiān)聽方法里面通過e.detail獲取傳遞的數(shù)據(jù)。
// api-index.stml:
methods: {
onGetResult(e){
console.log(e.detail.msg);
}
}
更多建議: