Из того, что я вижу в вашем разделе script
, вы не импортируете компонент Body
, в котором вы пытаетесь создать событие.
Прямо сейчас у вас есть это:
<script>
import Header from './components/Header.vue';
export default {
components:{
'app-header': Header,
'app-body' : Body
},
data () {
return {
name: 'John',
}
},
methods: {
setName(payload) {
this.name = payload;
}
}
}
</script>
Для компонента Body
отсутствует инструкция import
, поэтому ваш родительский компонент не знает, что такое Body
. Чтобы исправить это, вам просто нужно добавить импорт, как вы сделали для Header
. Это может выглядеть так: import Body from './components/Body.vue';
Теперь, когда используется компонент Body
, вам нужно включить его в свой template
. Вы сделаете то же самое, что и для app-header
, и включите такой тег <app-body></app-body>
. Наконец, вам нужно добавить прослушиватель событий, чтобы родитель знал, когда запускать setName
. Он добавляется к тегу app-body
и будет выглядеть так: <app-body @custom-event-name="setName"></app-body>
person
Montgomery Watts
schedule
26.09.2020
app-header
? - person Montgomery Watts   schedule 26.09.2020Body
? - person Montgomery Watts   schedule 26.09.2020<script> import Header from './components/Header.vue'; export default { components:{ 'app-header': Header, }, data () { return { name: 'John', } }, methods: { setName(childName){ this.name= childName; } }</script>
- person Kyaw Zay Win   schedule 26.09.2020