ARTICLE
sveltekit Runes 符文系统
了解 svelte5 核心概念「Runes」符文系统
July 23, 2025
1 MIN READ
$stateh2
这个 rune 用来创建一个响应式的本地状态,类似 Vue 里的 ref,也像 React 的 useState。
<script> let count = $state(0);
function add() { count++; }</script>
<button onclick={increment}>点击次数:{count}</button>
使用 $state 创建的变量可以直接读写,模板中会自动跟踪并更新,非常直观。
$effecth2
当你希望在某个变量变化时触发某个副作用逻辑,比如打印日志、发送请求,就可以用 $effect。
$effect(() => { console.log('count 变了:', count);});
和旧版本的 effect 更像 React 的 useEffect,但写法更简洁, 不需要依赖数组,Svelte 会自动追踪依赖。
$propsh2
在组件中,接收父组件传来的 props,不再使用 export let,而是统一用 $props。
<script> let { title } = $props();</script>
<h1>{title}</h1>
这种方式让 props 成为一个普通对象,不再有语法魔法,利于重构与组合。
$derivedh2
当你想从某些状态派生出一个新值,比如将 count 乘以 2,可以使用 $derived:
let double = $derived(() => count * 2);
每次 count 变化时,double 会自动更新,适用于计算属性场景。