@kr_ilya

Как использовать значение из data() одного компонента в другом vue?

Имеется компонент (тулбар) в который необходимо передать значение из другого компонента (B), но компонент B является посути страницей, которая загружается при переходе по ссылкам роутера

Вот структура
<template>
  <v-app>
    <v-content>
        <Toolbar />

        <Drawer />

        <nuxt />
    </v-content>
  </v-app>
</template>

<script>
import Toolbar from '~/components/core/Toolbar.vue'
import Drawer from '~/components/core/Drawer.vue'

export default {
  components: {
    Toolbar,
    Drawer
  }
}
</script>


(<nuxt /> = <router-view />)

Как мне получить значение title которое содержится в компоненте
index.vue (главная страница)
export default {
data: () => ({
title: 'Vuetify.js',
})
}

в тулбаре для дальнейшего использования?
  • Вопрос задан
  • 581 просмотр
Решения вопроса 2
Fragster
@Fragster
помогло? отметь решением!
Комментировать
potapchino
@potapchino
можно сделать через роутер. храните title в meta. далее ставите плагин vuex-router-sync, он создает в vuex модуль в котором хранит даные о текущем роуте. в туллбаре просто мапите стэйт. примерно так:
// router.js
routes: [{
  name: 'index',
  path: '/',
  meta: {
    title: 'Vuetify.js'
  }
}]


//Toolbar.vue
computed: {
  ...mapState('router', {
    currentTitle: state => state.meta.title
  })
}


если у вас нет vuex, то можно все сделать через watch:
//Toolbar.vue
data() {
  return {
    currentTitle: ''
  }
},
watch: {
  '$route': {
    handler(route) {
      this.currentTitle= route.meta.title
    },
    immediate: true
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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