面试题答案
一键面试- 定义状态变量:在最外层组件中定义一个状态变量来控制子组件的淡入淡出,例如
isVisible
。
<script>
let isVisible = false;
function toggleVisibility() {
isVisible =!isVisible;
}
</script>
- 引入
fade
过渡:在Svelte中,fade
过渡是内置的。如果要使用它,无需额外安装。在子组件上应用fade
过渡。假设子组件结构如下:
<!-- 最外层组件 -->
<script>
let isVisible = false;
function toggleVisibility() {
isVisible =!isVisible;
}
</script>
<button on:click={toggleVisibility}>Toggle</button>
{#if isVisible}
<InnerComponent />
{/if}
<!-- InnerComponent.svelte -->
<script>
import { fade } from'svelte/transition';
</script>
<div transition:fade>
This is the inner component.
</div>
上述代码中:
- 在最外层组件中,有一个按钮,点击按钮会切换
isVisible
的值。 InnerComponent
组件在isVisible
为true
时显示,并且使用了fade
过渡效果,使得组件在显示和隐藏时会有淡入淡出的动画。fade
过渡可以接收一些参数,如duration
(持续时间,单位毫秒),如果要自定义淡入淡出速度,例如transition:fade={{duration: 500}}
,这会使淡入淡出动画持续500毫秒。