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

Defined in: react/dist/src/local-first/createEvoluBinding.d.ts:3

## Properties

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

### EvoluContext

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

Defined in: react/dist/src/local-first/createEvoluBinding.d.ts:5

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: react/dist/src/local-first/createEvoluBinding.d.ts:10

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
  | null, transports?: readonly [OwnerWebSocketTransport, OwnerWebSocketTransport]) => void;
```

Defined in: react/dist/src/local-first/createEvoluBinding.d.ts:61

Uses an Owner for sync through [Evolu.useOwner](https://evolu.dev/docs/api-reference/common/local-first/Evolu/interfaces/Evolu#useowner) while the component is
mounted, and stops when it unmounts or the Evolu instance, owner, or
transports change. A null owner uses none, for a component that waits for
one.

The owner and transports are compared by content, so recreating them on
each render keeps the same registration.

### useQueries

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

Defined in: react/dist/src/local-first/createEvoluBinding.d.ts:35

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: react/dist/src/local-first/createEvoluBinding.d.ts:24

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: react/dist/src/local-first/createEvoluBinding.d.ts:45

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.