@gage Используйте $emit() чтобы передать данные обратно родителю в Vue.js и ниже небольшой пример кода:
Родительский компонтент:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<template> <div class="container"> <h1>Тестовый компонент</h1> <p>{{ text }}</p> <child @update-text="updateText" /> </div> </template> <script> import Child from '@/components/Child' export default { name: 'Test', components: { Child }, data() { return { text: '', } }, methods: { updateText(text) { this.text = text }, }, } </script> |
Дочерний компонент:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<template> <div class="wrapper"> <button @click="passToParent">Передать данные родителю</button> </div> </template> <script> export default { name: 'Child', methods: { passToParent() { this.$emit('update-text', 'привет из родителя') }, }, } </script> |
@gage
Вы можете передать данные родительскому компоненту в Vue.js, используя события. В дочернем компоненте вы можете создать метод и вызвать его в результате действия пользователей в вашем компоненте. Затем вызовите этот метод с помощью this.$emit('event-name', data) и передайте данные в родительский компонент. В родительском компоненте вы можете слушать это событие с помощью v-on:event-name="handler" и обработать данные в методе обработчика.
Например, в дочернем компоненте:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<template>
<button @click="sendData">Send Data to Parent</button>
</template>
<script>
export default {
data() {
return {
message: 'Hello from child!'
}
},
methods: {
sendData() {
this.$emit('child-data', this.message)
}
}
}
</script>
|
В родительском компоненте:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<template>
<div>
<child-component @child-data="handleData"></child-component>
<p>Received data: {{ receivedData }}</p>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue'
export default {
components: {
ChildComponent
},
data() {
return {
receivedData: ''
}
},
methods: {
handleData(data) {
this.receivedData = data
}
}
}
</script>
|