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} />

This site uses Just the Docs, a documentation theme for Jekyll.