生命周期
组件从挂载到销毁是一段完整的过程。这一页可以真实观察各个钩子的执行顺序与时机。
onMountonDestroy$effect 清理tick()
挂载与销毁 — onMount / onDestroy
点击按钮创建或销毁探针组件,观察事件日志。注意:服务端渲染时 onMount 不会执行。
创建后再销毁,会依次看到 mount → cleanup → destroy,其中 cleanup 来自 onMount 的返回值。
tick() — 等待 DOM 更新
修改状态后 DOM 不会立刻更新。await tick() 可以等到更新完成再操作 DOM。
发送几条消息,列表会自动滚动到底部。
onMount 中的浏览器 API
window、navigator 这类对象在服务端不存在,必须等挂载后再访问。
窗口宽度 (SSR 阶段无值)
网络状态 在线
拖动浏览器窗口大小,宽度会实时变化 —— 监听器在 onMount 中注册,卸载时自动移除。
onDestroy — 释放资源
定时器、WebSocket、事件监听等必须在销毁时清理,否则会造成内存泄漏。
- 组件内的
$effect返回的函数会自动在销毁时执行,无需手动调用。 onMount的返回值同样充当清理函数,比同时写 onDestroy 更简洁。- store 的
$自动订阅会在销毁时自动退订,无需手动处理。