全书目录

第四十篇:SolidStart 完全指南 —— 精细反应街区宇宙

第三章:Signals —— 街区里的独立传感器

1 分钟 208 字 第 773 / 962 个阅读单元

Solid 的基础状态原语是 signal

tsx
import { createSignal } from "solid-js";

function Counter() {
  const [count, setCount] = createSignal(0);

  return (
    <button onClick={() => setCount(c => c + 1)}>
      当前计数: {count()}
    </button>
  );
}

这里最重要的不是语法,而是心智模型:

  • count 不是普通变量
  • count 是一个 getter
  • 读取时要写成 count()
  • setCount 是 setter

你可以把它理解成:

text
createSignal(0)
   ↓
[读取传感器, 修改传感器]

count()      → 读取当前街区温度
setCount(1)  → 通知系统“温度改了”

#为什么要写 count() 而不是 count

因为 Solid 要知道:

  • 你什么时候“读取”了这个值
  • 哪个计算依赖了它
  • 将来它变化时应该通知谁

这不是语法怪癖,而是它构建依赖图的基础。