반응형
Vue.js $emit이 부모에게 수신되지 않았습니다.
자녀와 부모의 한 페이지 컴포넌트에 대해 다음 코드 코드가 왜 작동하지 않는지 여러 가지로 알아보고 있습니다.
Child.vue
<script>
export default {
name: 'ChildComponent',
data () {
return {}
}
mounted: function() {
this.emitSignal()
},
methods: {
emitSignal: function () {
console.log('>>emitSignal()')
this.$emit('my_signal')
}
}
}
</script>
Parent.vue
<template>
<div>
<child-component v-on:my_signal="doSomething"></child-component>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue'
export default {
name: 'ParentComponent',
data () {
return {
}
},
components: {
ChildComponent
},
methods: {
doSomething: function () {
console.log('doSomething')
}
}
}
</script>
응용 프로그램을 실행하면 아이가 콘솔에서 >>emitSignal() 신호를 내보내지만 부모 함수 doSomething은 실행되지 않습니다.
내가 뭘 놓쳤는지 알아?
NB I도 다음과 같이 이벤트버스를 시도했습니다.https://alligator.io/vuejs/global-event-bus/,는 아이가 기동하지만 부모는 신호를 인터셉트하지 않고 지정된 기능을 실행합니다.
당신의.emit
코드에는 콤마가 없는 것 외에 문제가 없습니다.data
Child.vue 블록
작업 예: https://jsfiddle.net/63t082p2/42/
<div id="app">
<child v-on:my_signal="doSomething"></child>
</div>
new Vue({
el: '#app',
methods: {
doSomething: function () {
console.log('doSomething')
}
},
components: {
'child' : {
mounted: function() {
this.emitSignal()
},
methods: {
emitSignal: function () {
console.log('>>emitSignal()')
this.$emit('my_signal')
}
}
}
}
});
언급URL : https://stackoverflow.com/questions/43604202/vue-js-emit-not-being-received-by-parent
반응형
'programing' 카테고리의 다른 글
Vue.js는 마운트된 상태에서 코드를 실행하여 기능을 재시작합니다. (0) | 2022.07.02 |
---|---|
"만약" 체인을 피하는 방법 (0) | 2022.07.02 |
정적 라이브러리의 내용 (0) | 2022.07.02 |
안드로이드:onIntercept의 차이Touch Event 및 dispatch Touch Event? (0) | 2022.07.02 |
Vue 다중 선택이 항상 부트스트랩 입력 그룹 뒤에 표시됨 (0) | 2022.07.02 |