@myskypesla

Как передать значение в другой компонент?

Есть компонент Preloader и компонент Header.

При нажатии на кнопку в компоненте Preloader, у него меняется show на !show и этот show должен передаться в компонент Header, который покажется только в момент v-if="!show".

Спасибо заранее
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
kulakoff
@kulakoff Куратор тега Vue.js
Vue.js developing
Как-то так:

<template>
  <preloader @show="show = $event"></preloader>
  <header v-if="!show"></header>
</template>

export default {
  data() {
    return {
      show: true
    }
  }
}


В прелоадере:

<template>
  <button @click="handler"></button>
</template>
export default {
  data() {
    return {
      show: false
    }
  },
  methods: {
    handler() {
      this.show = !this.show
      this.$emit('show', this.show)
    }
  }
}


Хотя тут на лицо дублирование, поэтому правильнее, чтобы переменная, которая отвечает за отображение была не внутри компонента, а снаружи.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы