用途:这是一个 Svelte 5 语法参考,在编写任何 Svelte 组件时使用,强调始终使用 Svelte 5 runes,不使用 Svelte 4 模式。
主要能力与迁移要点: props:Svelte 4 的 export let foo 改为 let { foo } = $props();默认值写 let { foo = 'default' } = $props();剩余属性用 let { ...rest } = $props() 取代 $$props 与 $$restProps。 响应式:$: doubled = x * 2 改为 let doubled = $derived(x * 2);多行逻辑用 $derived.by(() => {...})。副作用 $: { sideEffect() } 改为 $effect(() => { sideEffect() }),effect 可返回清理函数。 状态:$state(0)、$state([])、$state({}),数组与对象深度响应。 事件:去掉 on: 前缀,使用 onclick、oninput;修饰符改为在回调内处理,如 onclick={e => { e.preventDefault(); h(e) }}。 插槽:<slot /> 改为 {@render children()},具名插槽 <slot name="x" /> 改为 {@render x?.()};配合 {#snippet} 由父组件传入,子组件通过 $props() 接收并用 {@render} 渲染。 组件通信:createEventDispatcher() 改为传递回调 props,如 let { onchange } = $props()。 Store:移除 writable 导入;const count = writable(0) 改为 let count = $state(0);自动订阅 $count 改为直接访问 count;set/update 改为直接赋值 count = 1 或 count += 1。 双向绑定:let { value = $bindable() } = $props()。
附带参考文件(按需加载):references/typescript.md 涵盖 props、state、derived、snippets、事件、context 的类型标注;references/patterns.md 涵盖 Context API、受控输入、转发 props、异步数据、防抖;references/gotchas.md 涵盖响应式边界、effect 陷阱、绑定怪癖。
限制:资料只提供语法对照与参考文件索引,未提供安装命令、版本要求、平台信息或收费说明。