Модификатор sync
Потомок
props: {
data: {}
},
mounted() {
this.$emit('update:data', {id: 15, name: 'change data here'})
},
Родитель:
<station-info-map :data.sync="data"/>
<script>
data() {
return {
data: {}
};
},
watch: {
data(val) {
console.log('StationInfo -> watch -> data');
console.log('data=', val);
}
}
</script>
Обновление через функцию
Потомок
this.$emit('stationChangeMethod', {id: 15, name: 'work here'});
Родитель
<station-info-map @stationChangeMethod="stationChangeMethod"/>
<script>
methods: {
stationChangeMethod (data) {
console.log('StationInfo -> methods -> stationChangeMethod 3', data);
}
},
</script>
Вызов события на родителе
Потомок
mounted() {
this.$parent.$emit('stationChange', {id: 15, name: 'work here'});
},
Родитель
created() {
this.$on('stationChange', (station) => {
console.log('StationInfo -> mounted -> stationChange', station);
});
},
Вызов события на root
Потомок
mounted() {
this.$root.$emit('stationChange', {id: 15, name: 'work here'});
},
Родитель
created() {
this.$root.$on('stationChange', (station) => {
console.log('1 StationInfo -> mounted -> stationChange', station);
});
},