关于 svelte5-best-practices
为 Svelte 5 开发者整理的实践指南,提供响应式状态、组件属性、片段和事件处理模式,并涵盖 SvelteKit、性能与迁移注意事项。
主要功能
- 01Runes 响应式状态模式
- 02组件属性与双向绑定
- 03Snippets 和渲染模式
- 04事件处理与回调属性
- 05SvelteKit、性能及迁移参考
适用场景
- 01实现 Svelte 5 响应式状态
- 02编写组件属性和事件回调
- 03将 Svelte 4 代码迁移到 5
- 04检查 SvelteKit 加载与性能模式
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ midudev/ autoskills --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