Skip to main content
Svelte 基础
介绍
响应式
属性
逻辑
事件
绑定
类和样式
Actions
过渡动画
Svelte 进阶
高级响应性
复用内容
Motion
高级绑定
高级过渡效果
Context API
特殊元素
<script module>
后续步骤
SvelteKit 基础
介绍
路由
加载数据
请求头和 Cookie
共享模块
表单
API 路由
$app/state
错误和重定向
SvelteKit 进阶
钩子函数
页面选项
链接选项
高级路由
高级加载
环境变量
结论

在这个练习中,我们在 App.svelte 中忘记传递 PackageInfo.svelte 所需的 name 属性,这导致 <code> 元素为空且 npm 链接失效。

我们可以通过添加这个属性来修复它...

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

...但是由于 pkg 的属性与组件期望的属性相对应,我们可以将它们 ‘展开(spread)’ 到组件上:

App
<PackageInfo {...pkg} />

相反,在 PackageInfo.svelte 中,你可以使用剩余属性获取一个包含所有传递给组件的属性的对象...

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'
	};
</script>
 
<PackageInfo
	version={pkg.version}
	description={pkg.description}
	website={pkg.website}
/>