默认情况下,我必须声明要在components
prop中使用的组件。我想在Ajax请求中获取组件名称,在应用程序运行时注入组件并显示它们,而不是在应用程序启动时以components
属性显示。
在官方文档中,动态组件部分显示了如何在运行时切换组件,异步组件部分显示了在应用启动时如何在异步请求中加载组件。他们两个都无法解决我的问题。
答案 0 :(得分:0)
我通过在指令中使用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>