{
  "id": "2b6cecd86641d6ba257da89a",
  "source": "solid:signals",
  "type": "github-document",
  "title": "use-transition",
  "content": "---\ntitle: useTransition\nuse_cases: \u003e-\n  async batching, loading states, suspense integration, concurrent updates, ui\n  transitions\ntags:\n  - transitions\n  - async\n  - suspense\n  - loading\n  - batching\n  - concurrent\nversion: '1.0'\ndescription: \u003e-\n  Batch async updates with transitions in SolidJS. Track pending states and\n  defer commits until all async processes complete for smooth UI updates.\n---\n\n```ts\nimport { useTransition } from \"solid-js\"\n\nfunction useTransition(): [\n\tpending: () =\u003e boolean,\n\tstartTransition: (fn: () =\u003e void) =\u003e Promise\u003cvoid\u003e\n]\n\n```\n\nUsed to batch async updates in a transaction deferring commit until all async processes are complete.\nThis is tied into Suspense and only tracks resources read under Suspense boundaries.\n\n```ts\nconst [isPending, start] = useTransition();\n\n// check if transitioning\nisPending();\n\n// wrap in transition\nstart(() =\u003e setSignal(newValue), () =\u003e /* transition is done */)\n```",
  "url": "https://github.com/solidjs/solid-docs/blob/HEAD/src/routes/reference/reactive-utilities/use-transition.mdx",
  "metadata": {
    "path": "src/routes/reference/reactive-utilities/use-transition.mdx",
    "repo": "solidjs/solid-docs",
    "repo_url": "https://github.com/solidjs/solid-docs.git",
    "size": 935,
    "source_type": "github"
  },
  "hash": "60046e376967e81128acaba0863166e3b77961db18575ee7a94d636fed0a94bd",
  "timestamp": "2026-02-23T11:43:00.190223353+01:00"
}