Я создаю компонент вкладки, который динамически загружает свои v-tab-item
компоненты, учитывая массив объектов конфигурации, состоящий из tabName
, id
и tabContent
, который является расположением ресурса для компонента. У меня успешно загружаются компоненты. Однако они фактически не инициализируются (или не запускают свои created()
методы), пока я не переключу вкладки. Я просто получаю пустые вкладки с правильными ярлыками. При использовании инспектора DOM сначала отображается только <componentId></componentId>
, а затем, когда я переключаю вкладки, эти теги заменяются всем содержимым компонента.
Как заставить инициализировать динамические компоненты сразу после их загрузки?
РЕДАКТИРОВАТЬ: я создал CodePen здесь:
https://codepen.io/sgarfio/project/editor/DKgQON
Но так как это мой первый CodePen, я еще не выяснил, как ссылаться на другие файлы в проекте (то есть, что нужно установить для tabContent, чтобы их мог загрузить файл require.js). Я вижу в консоли «Доступ запрещен», и звучит так, как будто он нашел файлы, но не имеет доступа к ним, что странно, потому что все файлы принадлежат одному и тому же проекту. Так что мой CodePen даже не работает так же хорошо, как мой настоящий проект. Но, возможно, это поможет кому-то понять, что я пытаюсь сделать.
Кроме того, покопавшись еще немного, я нашел это:
http://michaelnthiessen.com/force-re-render/
, который говорит, что я должен изменить ключ на компоненте, и это заставит компонент повторно выполнить рендеринг. Я также нашел это:
https://vuejs.org/v2/guide/components-dynamic-async.html
Это довольно хороший пример того, что я пытаюсь сделать, но это не заставляет асинхронный компонент инициализировать . Это то, что мне нужно для асинхронных компонентов - они не инициализируются, пока я не переключаю вкладки. На самом деле они даже не отображаются в сетевых звонках. Vue просто создает для них заполнитель.