Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue中是否可能有重复出现的插槽?_Javascript_Vue.js_Vuejs2_Vue Component_Vuejs3 - Fatal编程技术网

Javascript Vue中是否可能有重复出现的插槽?

Javascript Vue中是否可能有重复出现的插槽?,javascript,vue.js,vuejs2,vue-component,vuejs3,Javascript,Vue.js,Vuejs2,Vue Component,Vuejs3,我已设置复制存储库: 我只使用Vue运行时,因此无法附加fiddle withVue.extend(需要模板编译器) VUE3是非常新的东西。我用它来探索。我不知道这是否适用于Vue 2,但我只是想知道这个组件是否可以工作: comment.template.html: 用法: comments.template.html 由{currentComment.author} 结构方面: 注释:[ { id:1, 作者:《古德曼》, 答复:[ { id:11, 作者:《重复人》, 答复:[

我已设置复制存储库:

我只使用Vue运行时,因此无法附加fiddle with
Vue.extend
(需要模板编译器)

VUE3是非常新的东西。我用它来探索。我不知道这是否适用于Vue 2,但我只是想知道这个组件是否可以工作:

comment.template.html:


用法:

comments.template.html


由{currentComment.author}
结构方面:

注释:[
{
id:1,
作者:《古德曼》,
答复:[
{
id:11,
作者:《重复人》,
答复:[
{
id:111,
作者:'ExpectedMan',
答复:[
{
id:1111,
作者:《旋律未来》,
答复:[]
}
]
}
]
}
]
}
]
我得到了
repeatimgman
三次渲染,而不是
ExpectedMan
,以及
melodyofffuture
。在我看来,第二个槽和第一个槽得到相同的评论道具。 我希望有嵌套的注释,并且只定义一次内部内容


这是可能的吗?

不要通过插槽再次向父组件公开注释,只需在
注释组件中打印作者姓名和注释即可:

<div class="comment">
   {{comment.author}}
    <Comment v-for="reply in comment.replies" :key="reply.id" :comment="reply">
        <slot :currentComment="reply"></slot>
    </Comment>
</div>
<Comment v-for="comment in comments" :key="comment.id" :comment="comment">
</Comment>

{{comment.author}}
父组件:

<div class="comment">
   {{comment.author}}
    <Comment v-for="reply in comment.replies" :key="reply.id" :comment="reply">
        <slot :currentComment="reply"></slot>
    </Comment>
</div>
<Comment v-for="comment in comments" :key="comment.id" :comment="comment">
</Comment>

在现场演示中,我尝试模拟stackoverflow注释样式。

repo已更新

家长:


儿童:


详情:


由{currentComment.author}
不要忘记将CommentDetails(在父级中)声明为组件和数据条目:

{
组成部分:{
评论,,
评论详情
},
数据:()=>({
评论详情,
评论:[……]
})
}

是否要将作者一个显示在另一个下面?是。正如你所看到的,结构是好的,但是数据总是来自同一个级别,看看是否有帮助,你给我指出了代码沙盒,但是如果你发布了解决方案,你的注释组件不会重复出现,这就是解决方法。我想在父组件中定义
{{comment.author}}
(或任何类型的包装器),就像在普通(非重复)组件中一样。你能准确地指出限制在哪里吗?我不创建应用程序-我探索和实验。有很多方法可以归档它。不客气,我在父组件和子组件中使用了命名作用域插槽。您在无限渲染中定义了两次详细信息(在父组件和子组件中),获得了成功:)。我发现不需要一个插槽,也不需要命名插槽。此外,细节可以作为prop-to-child中的组件传递,因此现在只定义一次。遗憾的是,这不是我想要的地方,但没关系(我不希望它会有更多的孩子)。我根据问题更新了回购协议。谢谢。不客气,好的,在这种情况下,您应该使用渲染功能,而不是像我使用vue 3构建组件时那样使用模板