# Svelte 开发指南 本指南整合了 Svelte MCP 服务器、子代理、技能和最佳实践,用于高效开发 Svelte 5 应用。 ## MCP 工具 Svelte MCP 服务器提供 Svelte 5 和 SvelteKit 的完整文档访问和代码分析功能。 ### 1. list-sections 首先使用此工具发现所有可用的文档章节。返回结构化列表,包含标题、用例和路径。 当被问到关于 Svelte 或 SvelteKit 的话题时,始终在对话开始时使用此工具来找到相关的章节。 ### 2. get-documentation 检索特定章节的完整文档内容。接受单个或多个章节。 调用 list-sections 工具后,必须分析返回的文档章节(尤其是 use_cases 字段),然后使用 get-documentation 工具获取所有与用户任务相关的文档章节。 ### 3. svelte-autofixer 分析 Svelte 代码并返回问题和建议。 在向用户发送代码之前,必须使用此工具分析 Svelte 代码。持续调用直到没有问题或建议返回。 ### 4. playground-link 使用提供的代码生成 Svelte Playground 链接。 完成代码后,询问用户是否需要 playground 链接。仅在用户确认后调用此工具,如果代码已写入项目文件则永远不要调用。 ## svelte-file-editor 子代理 创建、编辑或审查 `.svelte` 文件或 `.svelte.ts/.svelte.js` 模块时,应主动使用 svelte-file-editor 子代理。 该代理拥有独立的上下文窗口,不占用主对话上下文,能够: - 使用 Svelte MCP 服务器工具获取相关文档并验证代码 - 确保代码符合 Svelte 5 最佳实践 使用方式:在 Agent 工具中指定 `subagent_type: "svelte:svelte-file-editor"` ## 技能 ### svelte-code-writer CLI 工具,用于 Svelte 5 文档查询和代码分析: - 文档查询:`npx @sveltejs/mcp get-documentation
` - 列出章节:`npx @sveltejs/mcp list-sections` - 代码分析:`npx @sveltejs/mcp svelte-autofixer` ### svelte-core-bestpractices Svelte 5 核心最佳实践,涵盖:$state、$derived、$effect、$props 使用规范、事件处理、代码片段(snippets)、each 块、CSS 作用域样式、上下文 API、异步 Svelte、避免遗留特性。 ## Svelte 5 最佳实践 ### Runes (符文) **$state** - 用于需要响应式更新的状态 - 类属性用 `= $state()` 声明 - 避免在 $state 中存储不应触发更新的派生数据 **$derived** - 用于从其他值计算派生的值 - 使用 `$derived.by(() => ...)` 处理复杂计算 - 派生值应该是纯函数 **$effect** - 用于副作用(DOM 操作、第三方库集成、定时器) - 不要在 $effect 中同步更新它依赖的状态 - 声明 effect 中使用的所有响应式值 **$props** - 用于组件间数据传递 - 使用解构:`let { count, name } = $props()` - 回调函数也通过 $props 传递 ### 模板 **事件处理** - 使用 `onclick` 而非 `on:click`(Svelte 5 语法) - 事件处理器可以是内联函数 **Snippets (代码片段)** - 使用 `{#snippet ...}` 替代 slots - 更灵活,可在任何地方定义和使用 - 配合 `{@render ...}` 渲染 **Each 块** - 始终提供 key:`{#each items as item (item.id)}` - 避免 key 为数组索引 ### 样式 - 使用作用域样式(默认行为) - 使用 `:global()` 谨慎地应用全局样式 - 利用 CSS 自定义属性进行主题化 - 嵌套 `