Basic Svelte
Bindings
Classes and styles
Advanced Svelte
Advanced reactivity
Motion
Advanced bindings
Advanced transitions
Context API
Special elements
<script module>
Next steps
Basic SvelteKit
Introduction
Routing
Loading data
Headers and cookies
Shared modules
API routes
$app/state
Errors and redirects
Advanced SvelteKit
Page options
Link options
Advanced routing
Advanced loading
Environment variables
Conclusion
この演習では、App.svelte で PackageInfo.svelte が期待する name prop を指定し忘れているため、<code> 要素が空になり、npm link が壊れています。
以下のように prop を追加することで、これを修正できます…
App
<PackageInfo
name={pkg.name}
version={pkg.version}
description={pkg.description}
website={pkg.website}
/>…ただ、pkg のプロパティはこのコンポーネントが期待する props と一致しているので、代わりに ‘spread’ 構文を使用することができます:
App
<PackageInfo {...pkg} />逆に
PackageInfo.svelteで、rest プロパティを使用して、そのコンポーネントに渡されたオブジェクトの props を全て受け取ることができます...let { name, ...stuff } = $props();...もしくは、destructuring を完全にスキップします:
let stuff = $props();...こうすると、これらのオブジェクトパスからプロパティにアクセスできます:
console.log(stuff.name, stuff.version, stuff.description, stuff.website);
previous next
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'
};
</script>
<PackageInfo
version={pkg.version} description={pkg.description} website={pkg.website}/>