Solid 的基础状态原语是 signal。
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
你可以把它理解成:
createSignal(0)
↓
[读取传感器, 修改传感器]
count() → 读取当前街区温度
setCount(1) → 通知系统“温度改了”#为什么要写 count() 而不是 count
因为 Solid 要知道:
- 你什么时候“读取”了这个值
- 哪个计算依赖了它
- 将来它变化时应该通知谁
这不是语法怪癖,而是它构建依赖图的基础。