У меня есть код ниже, который я нашел в 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 );
Прежде всего, нет разницы между «компонентами одного файла» и «глобальными компонентами», когда речь заходит об их свойствах и хуках жизненного цикла. Они отличаются только тем, как они упакованы, как на них ссылаются другие компоненты и как / где хранится их HTML-шаблон.
Во-вторых, все компоненты, включая «корневой компонент», являются экземплярами Vue. Если вы посмотрите на исходный код, то увидите, что корневой экземпляр идентифицируется по отсутствию каких-либо родителей, например:
const isRoot = !vm.$parent
Посмотрите на это дерево компонентов из приложения Vue, используя vue devtools :
Вот что показывает консоль:
> 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.