面试题答案
一键面试思路
- 在Svelte组件中,定义一个包含多个属性的对象。
- 通过
{#if}
条件判断确保对象存在,然后将对象作为属性传递给<slot>
。 - 利用Svelte的响应式机制,当对象的属性发生变化时,
<slot>
中的内容会自动更新。
代码实现
<script>
let myObject = {
name: 'John',
age: 30
};
function updateObject() {
myObject.age++;
}
</script>
<button on:click={updateObject}>Increment Age</button>
{#if myObject}
<slot {myObject}></slot>
{/if}
在使用该组件的父组件中,可以这样接收对象并显示:
<MyComponent>
<div>Name: {myObject.name}</div>
<div>Age: {myObject.age}</div>
</MyComponent>
这里假设定义的组件名为MyComponent
,父组件通过<MyComponent>
标签引入,并在<slot>
位置插入具体显示内容,利用传递的myObject
对象来显示相关信息,当myObject
的age
属性在子组件中通过updateObject
函数更新时,父组件<slot>
中的内容也会响应式更新。