e30e75b5d4
Changesets / Create Version PR (push) Has been cancelled
Deploy Shadcn Registry / Deploy Production (push) Has been cancelled
Template Metrics / LOC + Bundle Size (push) Has been cancelled
Code Quality / Oxlint + Oxfmt (push) Has been cancelled
Code Quality / Template Sync (push) Has been cancelled
Code Quality / Build Changed Packages (push) Has been cancelled
Code Quality / Test Changed Packages (push) Has been cancelled
Deploy Expo Example / Deploy Production (push) Has been cancelled
Deploy Ink Example / Deploy Production (push) Has been cancelled
Python Tests / pytest (assistant-stream, 3.10) (push) Has been cancelled
Python Tests / pytest (assistant-stream, 3.12) (push) Has been cancelled
Python Tests / pytest (assistant-ui-sync-server-api, 3.10) (push) Has been cancelled
Python Tests / pytest (assistant-ui-sync-server-api, 3.12) (push) Has been cancelled
25 lines
951 B
Plaintext
25 lines
951 B
Plaintext
---
|
|
title: Hooks
|
|
description: Use React's hooks inside a resource, plus tap's additions.
|
|
---
|
|
|
|
Inside a resource you use React's hooks, imported from `"react"`: `useState`,
|
|
`useReducer`, `useEffect`, `useMemo`, `useCallback`, `useRef`, `useEffectEvent`,
|
|
and `use`. They behave as they do in a component and follow the same rules of
|
|
hooks, with a few [differences](/tap/docs/tap/differences-from-react).
|
|
|
|
## Composition hooks
|
|
|
|
Resources can host other resources. These hooks (from `@assistant-ui/tap`) manage
|
|
child lifecycles automatically:
|
|
|
|
- [`useResource`](/tap/docs/tap/composition#useresource) hosts a single child
|
|
- [`useResources`](/tap/docs/tap/composition#useresources) hosts a keyed list
|
|
- [`useTapRoot`](/tap/docs/tap/composition#usetaproot) exposes a child as a `{ getValue, subscribe }` boundary
|
|
|
|
<Cards>
|
|
<Card title="Resource Composition" href="/tap/docs/tap/composition">
|
|
Learn how to compose resources together.
|
|
</Card>
|
|
</Cards>
|