У меня есть родительский компонент, который загружает другие дочерние компоненты через httpvueloader.Проблема, с которой я сейчас сталкиваюсь, заключается в том, что с httpvueloader нормальный порядок перехватов жизненного цикла больше не действует.При регистрации созданных и смонтированных событий как в моем родительском, так и в моем дочернем компонентах я вижу, что сначала создается и монтируется родительский компонент, а затем создается и монтируется дочерний компонент.Я предполагаю, что это связано с httpvueloader, и я думаю, что могу обойти это.Однако для этого мне нужен способ узнать, когда монтируются все дочерние компоненты.Я пытался добиться этого с помощью таких событий:
в родительском:
created: function(){
this.$on('childMounted', function(){
console.log("child mounted");
})
},
и в дочернем:
mounted: function() {
this.$emit('childMounted');
}.
Однако, похоже, это тоже не работает, потому что родительникогда не получает событие childMounting.Что мне здесь не хватает?
ОБНОВЛЕНИЕ: после небольшого дополнительного исследования я понял это.Во-первых, this.$on()
работает только для событий из того же компонента, так что это было неправильно.Однако я должен прослушать событие, зарегистрировав прослушиватель в шаблоне, например, <childComponent @child-mounted="foo()"></childComponent>
(переименовал событие, потому что атрибуты HTML нечувствительны к регистру, и вы не можете использовать v-on для прослушивания событий camelCase при использовании в-DOM шаблоны).Что мне помогло, так это нить и, более конкретно, эта скрипка .