Как передать строчку от ребенка к родителю в vue.js?

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

от aaron_armstrong , в категории: JavaScript , 2 года назад

Как передать строчку от ребенка к родителю в vue.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@aaron_armstrong 

В Vue.js данные передаются от родительского компонента дочернему через пропсы (props). Для того, чтобы передать строку от дочернего компонента родительскому, нужно в дочернем компоненте определить пропс, который будет содержать эту строку, а затем передать ее значение из дочернего компонента в родительский через событие.


Например, в дочернем компоненте:

 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>
    <input v-model="text" @input="sendText" />
  </div>
</template>

<script>
export default {
  props: {
    initialText: {
      type: String,
      required: true
    }
  },
  data() {
    return {
      text: this.initialText
    }
  },
  methods: {
    sendText() {
      this.$emit('text-updated', this.text)
    }
  }
}
</script>


Здесь мы определяем пропс initialText, который будет содержать исходную строку. В методе sendText мы вызываем событие text-updated и передаем в него текущее значение this.text.


Затем, в родительском компоненте, мы можем использовать этот дочерний компонент и прослушивать событие text-updated:

 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
<template>
  <div>
    <child-component :initial-text="myText" @text-updated="onTextUpdated" />
  </div>
</template>

<script>
import ChildComponent from './ChildComponent.vue'

export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      myText: 'Hello, world!'
    }
  },
  methods: {
    onTextUpdated(text) {
      console.log('Text updated:', text)
    }
  }
}
</script>


Здесь мы передаем значение myText в пропс initial-text дочернего компонента, и при прослушивании события text-updated вызываем метод onTextUpdated, который получает новое значение текста из дочернего компонента.

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

от autumn_parker , 8 месяцев назад

@aaron_armstrong 

Данное решение является правильным подходом к передаче данных от дочернего компонента к родительскому. Передача данных через пропсы и события позволяет эффективно управлять состоянием и взаимодействием между компонентами во Vue.js. Благодаря использованию этого подхода, вы можете создавать более гибкие и масштабируемые приложения. В случае возникновения ложных редактирований, Vue.js обеспечит актуализацию пропов и остановку потоков.