Vue的VNode有没有办法动态生成dom?

Vue的VNode有没有办法动态生成dom?

我使用vue的CreateElement动态生成VNode对象,这个Vnode是作为props参数传递给某个组件的,组件内有没有办法将Vnode渲染成dom,插入到指定的html位置上?


回答:

如果你用的是 vue3,有个 render 的方法:

import { render } from 'vue'

render(vnode, el) // el 就是 Element 对象

--- 补充 ---

Vue2(未验证,不行不要打我,vue2 好久没用了):

const CompConstructor = Vue.extend(Comp) // Comp.vue

const instance = new CompConstructor({ el: document.createElement('div') })

// 或者用 new Vue() 的形式创建

instance.$slots.default = [vnode]

target.appendChild(instance.$el)


回答:

扔 render 函数不就可以了

比如说 messageBox 组件也是支持直接传入一个 VNode

以上是 Vue的VNode有没有办法动态生成dom? 的全部内容, 来源链接: utcz.com/p/937514.html

回到顶部