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

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

от nicolette.stoltenberg , в категории: JavaScript , 3 года назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от dmitrypro77 , 3 года назад

@nicolette.stoltenberg Вы можете использовать $refs и использовать ссылку на дочерний компонент чтобы вызвать метод в Vue.js, ниже пример кода:


Родительский компонент:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<template>
  <div class="container">
    <h1>Тестовый компонент</h1>
    <child ref="childComponent" />
    <button @click="changeChildText">Вызвать дочернюю функцию</button>
  </div>
</template>

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

export default {
  name: 'Parent',
  components: { Child },
  methods: {
    changeChildText() {
      // Вызвать дочернюю функцию changeText()
      this.$refs.childComponent.changeText('Текст изменен из родителя!')
    },
  },
}
</script>


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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<template>
  <div class="wrapper">
    <p>{{ text }}</p>
  </div>
</template>

<script>
export default {
  name: 'Child',
  data: () => ({
    text: 'Привет мир',
  }),
  methods: {
    changeText(text) {
      this.text = text
    },
  },
}
</script>


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

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

от roma , 2 года назад

@nicolette.stoltenberg 

Вызвать метод дочернего компонента можно, используя ссылку на экземпляр дочернего компонента в родительском компоненте.

  1. Добавьте в дочерний компонент ref с именем:
1


  1. В родительском компоненте получите ссылку на экземпляр дочернего компонента:
1
this.$refs.childRef


  1. Вызовите метод дочернего компонента:
1
this.$refs.childRef.methodName()