Props

Declaring Props

如果你需要將變數從父元件傳遞到子元件,你可以在子元件使用 $props 關鍵字來宣告子元件的 Props:

<script>
    let { name } = $props;
</script>

然後你就可以在父元件中使用 name="world"world 傳入子元件中:

<script>
    import Nested from "./Nested.svelte";
</script>

<Nested name="world" />

Default Values

你可以在宣告 Props 的時候指定預設值:

<script>
    let { name = "world" } = $props;
</script>

Spread Props

假設我們有一個元件叫做 PackageInfo,它有四個 Props:namespeedversionwebsite

<script>
    let { name, speed, version, website } = $props;

    let href = $derived(`https://www.npmjs.com/package/${name}`);
</script>

<p>
    The <code>{name}</code> package is {speed} fast. Download version {version} from
    <a {href}>npm</a> and <a href={website}>learn more here</a>
</p>

你可以使用下面的方式將這四個 Props 傳入子元件:

<script>
    import PackageInfo from "./PackageInfo.svelte";

    const pkg = {
        name: "svelte",
        speed: "blazing",
        version: 4,
        website: "https://svelte.dev",
    };
</script>

<PackageInfo name={pkg.name} speed={pkg.speed} website={pkg.website} />

也可以使用 ... 來將物件的所有屬性傳入子元件:

<PackageInfo {...pkg} />