@andreysuha
Что то знаю

Можно как-то задать порядок инициализации vue компонентов?

есть такая структура
<div id="app">
        <first-component></first-component>
        <second-component></second-component>
        <third-component></third-component>
    </div>


Регаются компоненты так

Vue.component("first-component", () => import(`first-component-path.vue`));
Vue.component("second-component", () => import(`second-component-path.vue`));
Vue.component("third-component", () => import(`third-component-path.vue`))


Внутри first-component реситриуется модуль в vuex который потом используется в двух други компонентах. Проблема в том что third-component инициализируется раньше двух остальных соответсвенно на момент его инициализации еще не существует модуля в vuex и при поытке обращения к нему я получаю ошибку. Как это можно исправить?
  • Вопрос задан
  • 250 просмотров
Решения вопроса 1
Kozack
@Kozack Куратор тега Vue.js
Thinking about a11y
При такой архитектуре — нельзя.
У вас три асинхронных компонента. Каждый компонент загружается независимо, и отображается тогда, когда будет загружен. Ваши компоненты должны оставаться абсолютно независимыми друг от друга.

Ваша проблема в том, что модуль в vuex зависит от компонента. А так быть не должно. Загружайте vuex раньше и только потом инициализируйте компоненты.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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