gpt4 book ai didi

vue.js - Vuejs - 如何在使用插槽时渲染子组件的 vnode

转载 作者:搜寻专家 更新时间:2023-10-30 22:16:52 30 4
gpt4 key购买 nike

如何从其子组件的父组件渲染 vnode。我有一个渲染函数,它循环遍历在 this.$slots.default 中找到的子数组。目的是将 child 包裹在 li 标签中。

问题是子组件不呈现,我得到空的 li 标签。我在这里遗漏了什么,在文档中哪里可以找到解决方案。 The Fiddle Can be found here嵌入代码如下。

// Parent component
const MyParent = Vue.component('my-parent', {

render: function(createElement) {
var parentContent = createElement('h2', "These are Parent's Children:")
var myChildren = this.$slots.default.map(function(child) {
//console.log("Child: ", child)

return createElement(
'li',
child
)
})

var content = [].concat(parentContent, myChildren)

return createElement(
'div', {},
content
)
}

});


// Child Component
const MyChild = Vue.component('my-child', {
template: '<h3>I am a child</h3>'
});



// Application Instance
new Vue({
el: '#app',
components: {
MyParent,
MyChild
}
})
<script src="https://unpkg.com/vue/dist/vue.js"></script>

<div id="app">
<my-parent>
<my-child></my-child>
<my-child></my-child>
</my-parent>

</div>

最佳答案

createElement 采用 vnode 数组。它应该像这样工作:

return createElement(
'li',
[child])
})

关于vue.js - Vuejs - 如何在使用插槽时渲染子组件的 vnode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45451150/

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