что означает это. $ root в компоненте? - PullRequest
1 голос
/ 21 мая 2019

У меня есть основной компонент App.vue.там у меня есть следующий код:

export default {
  data() {
    return {
      testVariable:false
    }
  },
}
</script>

<template>
  <VApp :dark="testVariable:false"
    <div id="app">
      <RouterView :key="$route.fullPath" />
    </div>
  </VApp>
</template>

Затем в одном из компонентов у меня есть следующий код:

data() {
    return {
      testVariable: this.$root.$children[0].testVariable,
    }
  },

methods: {
    darkModeToggle(e) {
      this.$root.$children[0].testVariable = e
    },
  },

Вопрос 1) Что это значит. $ root иэто. $ root.children значит?this.$root всегда компонент App.vue (потому что App.vue является родителем всех компонентов).является this.$root.children потомками этого компонента App.vue, что означает, что все остальные компоненты будут в массиве this.$root.children?

Вопрос 2) Что означает эта строка? <RouterView :key="$route.fullPath" />.Я имею в виду, почему мы проходим :key="$route.fullPath"?

1 Ответ

3 голосов
/ 21 мая 2019

this. $ Root

this. $ Root.children

это. $ Root всегда компонент App.vue?

  • Нет.App.vue имеет родительский компонент, это new Vue(...) в main.js.таким образом, new Vue(...) - это фактический $root

- вот что. $ root.children дочерние элементы этого компонента App.vue, что означает, что все остальные компоненты будут в этом массиве. $ root.children?

  • .children являются ПРЯМЫМИ дочерними компонентами, а НЕ ДЕСКЕНДАНТАМИ.В этом случае $root имеет только 1 прямого потомка, то есть App.vue

Что означает эта строка?,Я имею в виду, почему мы передаем: key = "$ route.fullPath"?

...