--- 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 Learn how to compose resources together.