【发布时间】:2019-09-29 23:23:13
【问题描述】:
我一直在玩 Svelte 3。我正在尝试创建一个基本的 Link 组件,使用如下:
<Link to="http://google.com">Google</Link>
我的组件呈现一个普通的 HTML <a> 标记,链接文本前面有一个 favicon:
<script>
export let to
const imageURL = getFaviconFor(to)
</script>
<a href={to}>
<img src={imageURL} alt={`${title} Icon`} />
<slot />
</a>
我在<img> 标记的alt 属性中显示的title 变量必须是未命名槽的文本值。这是一个非常基本的示例,但是有没有办法像这样获取插槽的值?
【问题讨论】:
-
只使用 title 属性,与 "to" 属性相同,而不是 slot。
-
我明白,但这只是一种解决方法。链接不是这样工作的,这也不是唯一可以访问组件的子级的时候。
-
这不是一种解决方法,插槽创建了一个数据通道,您可以通过该通道将内容发送到插槽上下文中,这不是一个简单的属性。您将不得不利用一些纤细的内部结构来读取插槽上下文数据。尝试在svelte.dev/repl 中创建一个槽,并查看 JS 输出,通道是如何编译的。
标签: javascript svelte