挂载与销毁 — onMount / onDestroy

点击按钮创建或销毁探针组件,观察事件日志。注意:服务端渲染时 onMount 不会执行。

创建后再销毁,会依次看到 mount → cleanup → destroy,其中 cleanup 来自 onMount 的返回值。

tick() — 等待 DOM 更新

修改状态后 DOM 不会立刻更新。await tick() 可以等到更新完成再操作 DOM。

发送几条消息,列表会自动滚动到底部。

onMount 中的浏览器 API

window、navigator 这类对象在服务端不存在,必须等挂载后再访问。

窗口宽度 (SSR 阶段无值)
网络状态 在线

拖动浏览器窗口大小,宽度会实时变化 —— 监听器在 onMount 中注册,卸载时自动移除。

onDestroy — 释放资源

定时器、WebSocket、事件监听等必须在销毁时清理,否则会造成内存泄漏。

  1. 组件内的 $effect 返回的函数会自动在销毁时执行,无需手动调用。
  2. onMount 的返回值同样充当清理函数,比同时写 onDestroy 更简洁。
  3. store 的 $ 自动订阅会在销毁时自动退订,无需手动处理。

基于 Svelte 5 与 SvelteKit 构建 · 全部示例均可在浏览器中实时交互