@Devero97

Как обновлять данные между компонентами?

У меня есть 2 компонента. Первый завязан на создании и обновлении. Тоесть при создании я отправляю данные (все данные должны быть пусты), но при обновлении (переиспользую этот компонент) я подставляю данные, которые я получил. Просто операторами сравнения. Если у меня есть данные, то я использую их (это обновление), если данных нет, то я использую пустую строку.
Например
data() {
return {
          title: '' || this.data.title,
          value: null || this.data.tags,
  }
}

Вот в дочерний компонент я хочу передать либо пустой массив, либо уже массив с данными.
В родительском компоненте я получаю данные из дочернего при выборе из списка.
Соответственно добавляю их в родительский список.
Запутанно, конечно.
Тоесть мне нужно в зависимости от создания или обновления, родительский компонент использовал либо пустой массив либо массив уже с заполненными данными из дочернего компонента, но если я при обновлении хочу еще добавить данных, то они отражались при сохранении в родительском и при очередном обновлении я хочу видеть уже дополненный список.
  • Вопрос задан
  • 142 просмотра
Пригласить эксперта
Ответы на вопрос 2
AlexeyCaTHaR
@AlexeyCaTHaR
Хранить данные в сторе(Vuex) и получать их через mapState где нужно и после заполнения просто обновлять их через мутацию?

Тогда абсолютно без разницы, дочерний, родительский компонент. Просто управляете логикой конкретного компонента исходя из данных стора
Ответ написан
swert-tech
@swert-tech
Если вам нет надобности юзать Vuex то можно использовать Props

Передать так
<template>
<component-first data="{ "key": "data" }"></component-first>
</template>

<<script>
export default {
    components: {
        ComponentFirst
    }
}
</script>


А принять вот так
<template>
<p>{{ data }}</p>
</template>

<<script>
export default {
    props: {
        data: Array
    },
    setup (props) {
        // work
    }
}
</script>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы