Как передать данные из дочернего компонента в родительский на Vue.js?

Пользователь

от nikko , в категории: JavaScript , 19 дней назад

Как передать данные из дочернего компонента в родительский на Vue.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от dmitrypro77 , 18 дней назад

@nikko Используйте this.$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
<template>
  <div class="container">
    <h1>Родительский компонент</h1>
    <p>Привет {{ name }}</p>
    <child @change-name="updateName" />
  </div>
</template>

<script>
import Child from '@/components/Child'

export default {
  name: 'Parent',
  components: { Child },
  data: () => ({
    name: 'Мир',
  }),
  methods: {
    updateName(name) {
      this.name = name
    },
  },
}
</script>


Дочерний компонент:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<template>
  <div class="wrapper">
    <input v-model="childName" type="text" @input="changeName" />
  </div>
</template>

<script>
export default {
  name: 'Child',
  data: () => ({
    childName: '',
  }),
  methods: {
    changeName() {
      // Вызвать евент и родительский метод и передать значение childName
      this.$emit('change-name', this.childName)
    },
  },
}
</script>


Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.