面试题答案
一键面试Svelte中Slot机制基本原理
- 概念:Slot(插槽)机制允许父组件向子组件传递内容。它就像是子组件定义的一个占位符,父组件可以将自己的HTML、Svelte组件或文本插入到这个占位符中。
- 原理:
- 在子组件中,使用
<slot>
标签定义插槽位置。当子组件渲染时,<slot>
标签所在位置会被父组件传入的内容替换。 - 可以有默认内容,即当父组件没有传入内容时,子组件的
<slot>
标签内的默认内容会被渲染。 - 具名插槽(named slots)还允许父组件将不同部分的内容插入到子组件的不同插槽位置。
- 在子组件中,使用
简单示例
- 子组件(例如
Child.svelte
):
<script>
// 子组件逻辑,这里简单定义一个变量
let message = 'This is a child component';
</script>
<div>
<h2>Child Component</h2>
<slot>默认内容,如果父组件没有传入内容,将显示这段。</slot>
</div>
- 父组件(例如
Parent.svelte
):
<script>
import Child from './Child.svelte';
</script>
<Child>
<p>这是从父组件传入到子组件插槽的内容。</p>
</Child>
在上述示例中,父组件Parent.svelte
将<p>这是从父组件传入到子组件插槽的内容。</p>
传入到了子组件Child.svelte
的插槽位置,替换了子组件插槽中的默认内容。