gpt4 book ai didi

javascript - Vue : Append component to element

转载 作者:行者123 更新时间:2023-12-02 23:48:05 26 4
gpt4 key购买 nike

我有一个如下所示的 vue 组件:

<template>
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true" data-autohide="true" data-delay="5000">
<!-- HTML Clipped -->
<div class="toast-body">{{message}}</div>
</div>
</template>

<script>
export default {
props: ['title', 'message']
}
</script>

然后我有一个 eventListener 监听通过 postMessage 发送的消息。这确实有效,但我认为 mount 不是执行我想要的操作的正确方法。

window.addEventListener('message', e => {
let toastComp = Vue.extend(Toast)
let toast = new toastComp({
propsData: {
message: 'hello'
}
}).$mount('.toast-container')
})

我正在寻找的是 vue 将组件附加到 .toast-container 元素,而不是替换该元素。如何做到这一点?

最佳答案

如何在 .toast-container 中创建并附加一个元素,然后将组件安装到该新元素上:

window.addEventListener('message', e => {
const toastContainer = document.querySelector('.toast-container')
const mountNode = document.createElement('div')
mountNode.id = 'mount-node'
toastContainer.appendChild(mountNode)

let toastComp = Vue.extend(Toast)
let toast = new toastComp({
propsData: {
message: 'hello'
}
}).$mount('#mount-node')
})

关于javascript - Vue : Append component to element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55764553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com