vue如何实现递归槽
短信预约 -IT技能 免费直播动态提醒
这篇文章主要介绍了vue如何实现递归槽,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
递归槽
我们是否可以v-for
只使用模板来制作一个组件?在此过程中,我发现了如何递归地使用slot
。
这是组件的样子:
<!-- VFor.vue --><template> <div> <!-- 渲染第一项 --> {{ list[0] }} <!-- 如果我们有更多的项目可以继续,但需要离开我们刚刚渲染的项目 --> <v-for v-if="list.length > 1" :list="list.slice(1)" /> </div></template>
如果你想用作用域slot来做这件事——为什么不呢?!— 只需要进行一些调整:<
template> <div> <!-- 将项目传递到要渲染的slot中 --> <slot v-bind:item="list[0]"> <!-- Default --> {{ list[0] }} </slot> <v-for v-if="list.length > 1" :list="list.slice(1)" > <!-- 递归向下传递作用域slot --> <template v-slot="{ item }"> <slot v-bind:item="item" /> </template> </v-for> </div></template>
以下是该组件的使用方法:
<template> <div> <!-- 常规列表 --> <v-for :list="list" /> <!-- 带有粗体项目的列表 --> <v-for :list="list"> <template v-slot="{ item }"> <strong>{{ item }}</strong> </template> </v-for> </div></template>
感谢你能够认真阅读完这篇文章,希望小编分享的“vue如何实现递归槽”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341