1. 在子組件中進行< content @click=”close”>事件的綁定
2. 在子組件中的methods對這個close進行定義
3. methods:{
close(){
this.emit(‘on-close’) } }
也就是說,其實這個on-close是我們子組件這里的點擊事件啦
4 . 在父組件中的子組件標簽中綁定on-close這個事件
- <dialog :on-close=”beClose”></dialog>
- 在父組件的methods定義這個事件
methods{
beClose(){
console.log(10)
}
}
意義:子組件中的某一個小div的點擊被我們封裝成'on-close'事件
父組件進行監(jiān)聽,一旦子組件觸發(fā)了,就會調用父組件的方法
<template>
<button @click="emitEvent">點擊我</button>
</template>
<script>
export default {
data() {
return {
msg: "我是子組件中的數(shù)據(jù)"
}
},
methods: {
emitEvent(){
this.$emit('my-event', this.msg)
//通過按鈕的點擊事件觸發(fā)方法,然后用$emit觸發(fā)一個my-event的自定義方法,傳遞this.msg數(shù)據(jù)。
}
}
}
</script>
子組件
<template>
<div id="app">
<child-a @my-event="getMyEvent"></child-a>
<!--父組件中通過監(jiān)測my-event事件執(zhí)行一個方法,然后取到子組件中傳遞過來的值-->
</div>
</template>
<script>
import ChildA from './components/child.vue'
export default {
components: {
ChildA
},
methods: {
getMyEvent(msg){
console.log('接收的數(shù)據(jù)--------->'+msg)//接收的數(shù)據(jù)--------->我是子組件中的數(shù)據(jù)
}
}
}
</script>