Vue динамические компоненты импорта - PullRequest
0 голосов
/ 29 августа 2018

По умолчанию я должен объявить компоненты, которые следует использовать в components prop. Я хочу получить имена компонентов в запросе Ajax, внедрить компоненты во время работы приложения и показать их, НЕ в components prop при запуске приложения.

В официальном документе раздел динамического компонента показывает, как переключать компонент во время работы, а раздел асинхронного компонента показывает, как загрузить компонент в асинхронном запросе при запуске приложения. Они оба не могут решить мой вопрос.

1 Ответ

0 голосов
/ 04 сентября 2018

Я решил свой вопрос, используя is с директивой. Компонент объявлен в объекте, и асинхронный запрос компонента через Ajax как часть JavaScript. И разобрать это в new function(...).

Основные коды, НЕ ИСПЫТАННЫЕ.

let rawComp="{...}" // Your vue component declaration js object via ajax
let rawHTML="<div>...</div>"//Also your component HTML template
let rawCompWrapper=`return ${rawComp}`
let comp = (new Function(rawCompWrapper))()
comp.template = rawHTML
comp.foo=bar//Other tasks for parsing your component
<div :is="comp" v-bind="{your:'propertyValues'}"></div>

...