安装VUE组件-VUE 3
我想在第3版中执行此操作
new ComponentName({
propsData: {
title: 'hello world',
}
}).$mount();
但我收到此错误:VueComponents_component_name__WEBPACK_IMPORTED_MODULE_1__.default is not a constructor
目前,我们正在使用上述方法通过append
我想在VUE 3上做同样的事情,但我还没有找到方法
提前谢谢
解决方案
我找到了我答案的解决方案,在VUE 3(VUE项目外)中挂载VUE组件与VUE 2不同,方法如下:
// mount.js
import { createVNode, render } from 'vue'
export const mount = (component, { props, children, element, app } = {}) => {
let el = element
let vNode = createVNode(component, props, children)
if (app && app._context) vNode.appContext = app._context
if (el) render(vNode, el)
else if (typeof document !== 'undefined' ) render(vNode, el = document.createElement('div'))
const destroy = () => {
if (el) render(null, el)
el = null
vNode = null
}
return { vNode, destroy, el }
}
- el:要追加的DOM元素
- vNode:VUE实例
- 销毁:销毁组件
这是挂载要直接附加到DOM的VUE 3组件的方法,使用方法如下:
// main.js
import { mount } from 'mount.js'
const { el, vNode, destroy } = mount(MyVueComponents,
{
props: {
fields,
labels,
options
},
app: MyVueApp
},
)
$element.html(el);
希望对您有所帮助,致敬!
相关文章