关于 svelte5-best-practices
介绍 Svelte 5 在响应式、组件、事件、TypeScript、SvelteKit、迁移和性能方面的实践模式。帮助开发者采用新约定并避免常见错误。
主要功能
- 01Runes 与响应式状态模式
- 02Snippets 和组件属性
- 03事件与回调约定
- 04TypeScript 与泛型组件
- 05SvelteKit 和性能指引
- 06Svelte 4 迁移说明
适用场景
- 01构建 Svelte 5 组件
- 02迁移 Svelte 4 代码
- 03实现 SvelteKit 加载逻辑与表单操作
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ejirocodes/ agent-skills --skill svelte5-best-practices安装后在 Claude Code 中输入/svelte5-best-practices确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/events.mdmigration.mdperformance.mdrunes.mdsnippets.mdsveltekit.mdtypescript.md详细介绍
Svelte 5 最佳实践
快速参考
| 主题 | 使用时机 | 参考 |
|---|---|---|
| Runes | $state、$derived、$effect、$props、$bindable、$inspect | runes.md |
| Snippets | 替代插槽、{#snippet}、{@render} | snippets.md |
| 事件 | onclick 处理程序、回调属性、上下文 API | events.md |
| TypeScript | 属性类型、泛型组件 | typescript.md |
| 迁移 | 从 Svelte 4 迁移到 5、从 stores 迁移到 runes | migration.md |
| SvelteKit | Load 函数、表单操作、SSR、页面类型 | sveltekit.md |
| 性能 | 通用响应性、避免过度响应、流式传输 | performance.md |
核心模式
响应式状态
<script>
let count = $state(0); // Reactive state
let doubled = $derived(count * 2); // Computed value
</script>
组件属性
<script>
let { name, count = 0 } = $props();
let { value = $bindable() } = $props(); // Two-way binding
</script>
Snippets(替代插槽)
<script>
let { children, header } = $props();
</script>
{@render header?.()}
{@render children()}
事件处理程序
<button onclick={() => count++}>Click</button>
回调属性(替代 createEventDispatcher)
<script>
let { onclick } = $props();
</script>
<button onclick={() => onclick?.({ data })}>Click</button>
常见错误
- 使用
let却不使用$state- 不使用$state(),变量就不会具有响应性 - 使用
$effect处理派生值 - 应改用$derived - 使用
on:click语法 - 在 Svelte 5 中应使用onclick - 使用
createEventDispatcher- 应改用回调属性 - 使用
<slot>- 应使用 snippets 和{@render} - 忘记
$bindable()-bind:正常工作所必需 - 在 SSR 中设置模块级状态 - 会导致跨请求数据泄漏
- 在 load 函数中顺序 await - 使用
Promise.all并行发起请求
评论
支持 Markdown