Svelte 5 引入了全新的响应式原语——Runes,彻底改变了状态管理的方式。让我们一起来了解这个革命性的变化。
Runes 是以 $ 符号开头的特殊函数,用于告诉 Svelte 编译器某个变量是响应式的。
<script>
let count = $state(0)
let user = $state({ name: '栗辉', role: 'admin' })
</script>
<button onclick={() => count++}>
点击了 {count} 次
</button>
<script>
let count = $state(0)
let doubled = $derived(count * 2)
</script>
<p>{count} × 2 = {doubled}</p>
<script>
let count = $state(0)
$effect(() => {
console.log(`count 变为 ${count}`)
document.title = `计数器: ${count}`
})
</script>
<script>
let { title, count = 0 } = $props()
</script>
<h1>{title}</h1>
<p>计数: {count}</p>
| 特性 | Svelte 4 | Svelte 5 |
|---|---|---|
| 状态声明 | let count = 0 |
let count = $state(0) |
| 派生值 | $: doubled = count * 2 |
let doubled = $derived(count * 2) |
| 副作用 | $: { ... } |
$effect(() => { ... }) |
| Props | export let title |
let { title } = $props() |
npx sv migrateRunes 让 Svelte 的响应式系统更加显式和灵活。虽然需要一定的学习成本,但带来的好处是值得的。==高亮文字kk==
正在加载评论...