Skip to content

Commit

Permalink
docs: +react setting
Browse files Browse the repository at this point in the history
  • Loading branch information
brillout committed Feb 16, 2025
1 parent 2160d7a commit 1cec86f
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 0 deletions.
4 changes: 4 additions & 0 deletions docs/headingsDetached.ts
Original file line number Diff line number Diff line change
Expand Up @@ -564,6 +564,10 @@ function api(): HeadingDetachedDefinition[] {
title: '`onCreateApp()` hook',
url: '/onCreateApp'
},
{
title: '`+react` setting',
url: '/react-setting'
},
{
title: '`getGlobalContextSync()` & `getGlobalContextAsync()`',
url: '/getGlobalContext'
Expand Down
68 changes: 68 additions & 0 deletions docs/pages/react-setting/+Page.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import { Link } from '@brillout/docpress'
import { ImplementedBy } from '../../components'

Environment: server, client.

<ImplementedBy by={<code>vike-react</code>} noCustomGuide={true}>the `+react` setting</ImplementedBy>

Add options to the React functions that `vike-react` calls.

On the client-side, you can set the options of React's [`hydrateRoot()`](https://react.dev/reference/react-dom/client/hydrateRoot) and [`createRoot()`](https://react.dev/reference/react-dom/client/createRoot).

```js
// pages/+react.client.js
// Environment: client

export default {
hydrateRootOptions: {
onUncaughtError,
/*
onCaughtError,
onRecoverableError,
...
*/
},
createRootOptions: {
onUncaughtError
/*
onCaughtError,
onRecoverableError,
...
*/
}
}

function onUncaughtError(err) {
console.error('Uncaught React error', err)
}
```

> Make sure you define these in <code>react.<b>client</b>.js</code>.
You can also use <Link href="/pageContext">`pageContext`</Link>:

```js
// pages/+react.client.js

export default (pageContext) => {
return {
hydrateRootOptions,
createRootOptions
}
}
```

On the server-side, you can set the options of React's [`renderToString()`](https://react.dev/reference/react-dom/server/renderToString).

```js
// pages/+react.server.js
// Environment: server

export default {
renderToStringOptions: {
identifierPrefix: 'some-id-prefix'
}
}
```

> Make sure you define these in <code>react.<b>server</b>.js</code>.
1 change: 1 addition & 0 deletions docs/pages/settings/+Page.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ List of built-in settings. (You can <Link href="/meta">create your own settings<
- [**`baseAssets`**](/base-url): Base URL of server.
- [**`baseServer`**](/base-url): Base URL of static assets.
- [**`extends`**](/extends): Install <Link href="/extensions" />.
- [**`react()`**](/react-setting): `vike-react` Options passed to React functions such as `createRoot()` or `hydrateRoot()`.

### HTML

Expand Down

0 comments on commit 1cec86f

Please sign in to comment.