Skip to Content
APISignals 与 Hooks

Signals 与 Hooks

当前推荐优先理解的是:

  • signal
  • computed
  • effect

三者的职责

signal

基础状态源。适合:

  • 输入值
  • 当前选中项
  • 展开/收起状态

computed

派生值。适合:

  • 已过滤结果
  • 已排序结果
  • 只用于展示的组合值

effect

副作用边界。适合:

  • 日志
  • 任务协调
  • 非 UI 的同步动作

一个非常重要的点:

effect 不同于 React 的 useEffect
它没有依赖数组,依赖由执行时的读取自动追踪。

组件内 API

在组件里,更常见的写法是:

let count = cx.signal(|| 0); let doubled = cx.computed({ let count = count.clone(); move || count.get() * 2 }); cx.effect({ let doubled = doubled.clone(); move || { let _ = doubled.get(); } });

关键边界

  • signal:事实状态
  • computed:派生状态
  • effect:副作用

不要把 effect 当成另一个状态容器,也不要把它当成 React 式的依赖数组 API。

推荐继续阅读

Last updated on