This commit is contained in:
Tomas Dvorak
2026-02-24 10:33:59 +01:00
parent 409acd2e08
commit 898a3c303f
1374 changed files with 290409 additions and 29187 deletions
+17
View File
@@ -0,0 +1,17 @@
{
"id": "67981896ec63617a429becd3",
"source": "solid:signals",
"type": "github-document",
"title": "create-reaction",
"content": "---\ntitle: createReaction\nuse_cases: \u003e-\n custom tracking logic, one-time reactions, separating tracking from execution,\n advanced reactive patterns\ntags:\n - reactivity\n - tracking\n - custom\n - effects\n - advanced\nversion: '1.0'\ndescription: \u003e-\n Separate tracking from execution with createReaction. Create one-time reactive\n side effects that run on first dependency change only.\n---\n\n```ts\nimport { createReaction } from \"solid-js\"\n\nfunction createReaction(onInvalidate: () =\u003e void): (fn: () =\u003e void) =\u003e void\n\n```\n\nSometimes it is useful to separate tracking from re-execution.\nThis primitive registers a side effect that is run the first time the expression wrapped by the returned tracking function is notified of a change.\n\n```ts\nconst [s, set] = createSignal(\"start\")\n\nconst track = createReaction(() =\u003e console.log(\"something\"))\n\n// run the reaction next time `s` changes.\ntrack(() =\u003e s())\n\nset(\"end\") // \"something\"\n\nset(\"final\") // no-op since the reaction only runs on the first update, need to call `track` again.\n```",
"url": "https://github.com/solidjs/solid-docs/blob/HEAD/src/routes/reference/secondary-primitives/create-reaction.mdx",
"metadata": {
"path": "src/routes/reference/secondary-primitives/create-reaction.mdx",
"repo": "solidjs/solid-docs",
"repo_url": "https://github.com/solidjs/solid-docs.git",
"size": 1038,
"source_type": "github"
},
"hash": "ff59d24e0a0ccc5d54212062e0a36b8d5596c3eff156830c38bab4f890891d35",
"timestamp": "2026-02-23T11:43:00.19060486+01:00"
}