Никогда раньше не использовал Vue.js. У меня есть один родительский компонент и 2 дочерних компонента. Эти два дочерних компонента должны взаимодействовать с асинхронными действиями с использованием собственной системы шины событий Vue (с фиктивным объектом Vue, используемым в качестве общего контейнера для шины событий).
Имея что-то вроде следующего:
EventBus.js
import Vue from "vue"
export default new Vue()
Parent.vue
import Child1 from "./Child1.vue"
import Child2 from "./Child2.vue"
export default {
name: "Parent",
components: {
child1: Child1,
child2: Child2,
}
}
Child1.vue
import EventBus from "./EventBus"
export default {
name: "Child1",
beforeCreate () {
EventBus.$once("MY_EVENT_X", async () => {
EventBus.$emit("MY_EVENT_Y")
})
},
mounted () {
// something
}
}
Child2.vue
import EventBus from "./EventBus"
export default {
name: "Child2",
beforeCreate () {
EventBus.$once("MY_EVENT_Y", async () => {
// do something
})
},
mounted () {
EventBus.$emit("MY_EVENT_X")
}
}
Мой вопрос: имея обработчики событий, определенные в хуке «beforeCreate», могу ли я быть уверен, что хуки «beforeCreate» обоих компонентов Child1 и Child2 будут инициализированы до того, как любой из «установленных» хуков Child1 или Child2 будет вызван Vue?