跳到主要內容

在這個練習中,在 App.svelte 中,我們忘記傳遞 PackageInfo.svelte 預期的 name prop,這表示 <code> 元素是空的,而且 npm 連結已損壞。

我們可以透過新增 prop 來修正它...

App
<PackageInfo
	name={pkg.name}
	version={pkg.version}
	description={pkg.description}
	website={pkg.website}
/>

...但是由於 pkg 的屬性對應到元件預期的 props,我們可以將它們「展開」到元件上。

App
<PackageInfo {...pkg} />

相反地,在 PackageInfo.svelte 中,您可以使用 rest 屬性來取得一個包含傳遞給元件的所有 props 的物件...

let { name, ...stuff } = $props();

...或者完全跳過解構

let stuff = $props();

...在這種情況下,您可以使用其物件路徑存取這些屬性

console.log(stuff.name, stuff.version, stuff.description, stuff.website);

在 GitHub 上編輯此頁面

上一頁 下一頁
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script>
	import PackageInfo from './PackageInfo.svelte';
 
	const pkg = {
		name: 'svelte',
		version: 5,
		description: 'blazing fast',
		website: 'https://svelte.dev.org.tw'
	};
</script>
 
<PackageInfo
	version={pkg.version}
	description={pkg.description}
	website={pkg.website}
/>