VueJS: каждый из нескольких файловых компонентов - это экземпляр vue или вложенные объекты?

У меня есть код ниже, который я нашел в HackerRank, и он довольно прост и работает в каждом случае.

SELECT M.MEDIAN_COL FROM MEDIAN_TABLE M WHERE  
  (SELECT COUNT(MEDIAN_COL) FROM MEDIAN_TABLE WHERE MEDIAN_COL < M.MEDIAN_COL ) = 
  (SELECT COUNT(MEDIAN_COL) FROM MEDIAN_TABLE WHERE MEDIAN_COL > M.MEDIAN_COL );
0
задан appu 19 March 2019 в 08:01
поделиться

1 ответ

Прежде всего, нет разницы между «компонентами одного файла» и «глобальными компонентами», когда речь заходит об их свойствах и хуках жизненного цикла. Они отличаются только тем, как они упакованы, как на них ссылаются другие компоненты и как / где хранится их HTML-шаблон.

Во-вторых, все компоненты, включая «корневой компонент», являются экземплярами Vue. Если вы посмотрите на исходный код, то увидите, что корневой экземпляр идентифицируется по отсутствию каких-либо родителей, например:

const isRoot = !vm.$parent

Посмотрите на это дерево компонентов из приложения Vue, используя vue devtools :

enter image description here

Вот что показывает консоль:

> var root = $vm0
> var app = $vm0.$children[0]
> var link = $vm0.$children[0].$children[0]

// How they are named in vue dev tools
> link.$options._componentTag
< "router-link"
> app.$options.__file
< "src/App.vue"

// How the root instance is identified
> !root.$parent
< true
> !app.$parent
< false
> !link.$parent
< false

// Constructors
// Each component has its own class (or prototype), but they all extend the Vue base class
> Object.getPrototypeOf(root) === Object.getPrototypeOf(Object.getPrototypeOf(app))
< true
> Object.getPrototypeOf(root) === Object.getPrototypeOf(Object.getPrototypeOf(link))
< true

Следовательно, компоненты оба [ 113] экземпляры vue и вложенные объекты внутри одного корневого экземпляра vue.

0
ответ дан bernie 19 March 2019 в 08:01
поделиться
Другие вопросы по тегам:

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