偶然的你
这个是我的解决方案不知道是不是比较通用或者正确的解决方案, 用render函数去判断要渲染哪个标签//run.vue// homeComponents 是异步组件列表. import homeComponents from '@/assets/js/homeComponents'; export default { render: function(cElement, context) { return cElement(homeComponents[this.temp.type], { props: { temp: this.temp,// 组件数据 } }) }, props: { temp: { type: Object, required: true, default: {} }, }// home.vue// 只要注册这个 run 组件, 然后传入 temp , 根据temp.type, 去渲染相应的 component// 这样你只要在页面上写一个run组件, 传入 type, 就会异步加载你需要的组件<template> <run v-for="node in element" :temp="node" :key="node.fieldId" /></template>其实就是实现了官网里的 component 标签的功能. 感觉这样更灵活吧