[英]Slots are not showing - Vue.js
我现在正在学习 vue,但在理解插槽方面存在问题。
我有两个组件:
<template>
...
<slot name="test"></slot>
...
<template/>
<template>
<router-link class="event-link" :to="{ name: 'event-show', params: {id: '1'}}">
..
<BaseIcon name="users" slot="test">{{ event.attendees.length }} attending</BaseIcon>
..
</router-link>
</template>
但是“插槽”并没有替换为 EventCard 中BaseIcon
组件标签中的EventCard
。
您可以像v-slot
一样使用它,因为不推荐使用slot
语法,如此处所述:
<BaseIcon name="users">
<template v-slot:test>
{{ event.attendees.length }} attending
</template>
</BaseIcon>
或速记:
<BaseIcon name="users" >
<template #test>
{{ event.attendees.length }} attending
</template>
</BaseIcon>
命名的 v-slot 只能在模板中使用。 默认值也可以在组件中使用。 请参阅文档: https ://v2.vuejs.org/v2/guide/components-slots.html#Abbreviated-Syntax-for-Lone-Default-Slots
还:
请注意,v-slot 只能添加到 a(有一个例外),这与已弃用的 slot 属性不同。 https://v2.vuejs.org/v2/guide/components-slots.html#Named-Slots
我最近有一个非常相似的问题。 结果发现我的 HTML 标记中有一个小故障(我没有关闭粗体标记)。 据推测,将模板 HTML 转换为 Javascript 脚本的 Vue 例程对这种故障非常敏感(不像多年来一直擅长应对这些故障的浏览器)——所以模板默默地失败了。
我不得不使用费力的“分而治之”的过程来追踪它——把所有东西都剪掉,然后一点一点地粘贴回去。 但是可能有语法检查器可以彻底分析您的模板标记。
值得检查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.