[API reference](https://evolu.dev/docs/api-reference) › [@evolu/react](https://evolu.dev/docs/api-reference/react) › ReactBinding

Defined in: [local‑first/createEvoluBinding.tsx:25](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/react/src/local-first/createEvoluBinding.tsx#L25)

## Properties

<a id="evolucontext"></a>

### EvoluContext

```ts
readonly EvoluContext: FC<{
  children?: ReactNode;
  value: Evolu<S>;
}>;
```

Defined in: [local‑first/createEvoluBinding.tsx:27](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/react/src/local-first/createEvoluBinding.tsx#L27)

Provides [Evolu](https://evolu.dev/docs/api-reference/common/local-first/Evolu/interfaces/Evolu) to React descendants consumed via `useEvolu`.

---

<a id="useevolu"></a>

### useEvolu

```ts
readonly useEvolu: () => Evolu<S>;
```

Defined in: [local‑first/createEvoluBinding.tsx:33](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/react/src/local-first/createEvoluBinding.tsx#L33)

Returns the current [Evolu](https://evolu.dev/docs/api-reference/common/local-first/Evolu/interfaces/Evolu) instance from `EvoluContext`.

### useOwner

```ts
readonly useOwner: (owner:
  | ReadonlyOwner
  | Owner, transports?: readonly [OwnerWebSocketTransport, OwnerWebSocketTransport]) => UnuseOwner;
```

Defined in: [local‑first/createEvoluBinding.tsx:91](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/react/src/local-first/createEvoluBinding.tsx#L91)

Calls [Evolu.useOwner](https://evolu.dev/docs/api-reference/common/local-first/Evolu/interfaces/Evolu#useowner) on the current [Evolu](https://evolu.dev/docs/api-reference/common/local-first/Evolu/interfaces/Evolu) instance.

### useQueries

```ts
readonly useQueries: <Q, OQ>(queries: [...Q[]], options?: Partial<{
  once: [...OQ[]];
  promises: [...QueriesToQueryRowsPromises<Q>[], ...QueriesToQueryRowsPromises<OQ>[]];
}>) => [...QueriesToQueryRows<Q>[], ...QueriesToQueryRows<OQ>[]];
```

Defined in: [local‑first/createEvoluBinding.tsx:64](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/react/src/local-first/createEvoluBinding.tsx#L64)

The same as `useQuery`, but for many queries.

The number of queries must remain stable across renders.

### useQuery

```ts
readonly useQuery: <R>(query: Query<S, R>, options?: Partial<{
  once: boolean;
  promise: Promise<QueryRows<R>>;
}>) => QueryRows<R>;
```

Defined in: [local‑first/createEvoluBinding.tsx:48](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/react/src/local-first/createEvoluBinding.tsx#L48)

Load and subscribe to the Query, and return an object with `rows` and `row`
properties that are automatically updated when data changes.

Note that `useQuery` uses React Suspense. It means every usage of
`useQuery` blocks rendering until loading is completed. To avoid loading
waterfall with more queries, use `useQueries`.

The `promise` option allows preloading queries before rendering, which can
be useful for complex queries that might take noticeable time even with
local data. However, this is rarely needed as local queries are typically
fast.

### useQuerySubscription

```ts
readonly useQuerySubscription: <R>(query: Query<S, R>, options?: Partial<{
  once: boolean;
}>) => QueryRows<R>;
```

Defined in: [local‑first/createEvoluBinding.tsx:79](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/react/src/local-first/createEvoluBinding.tsx#L79)

Subscribe to [Query](https://evolu.dev/docs/api-reference/common/local-first/Query/type-aliases/Query) [QueryRows](https://evolu.dev/docs/api-reference/common/local-first/Query/type-aliases/QueryRows) changes.