Push V1 app
This commit is contained in:
+59
@@ -0,0 +1,59 @@
|
||||
---
|
||||
title: Rendering Strategies
|
||||
order: 4
|
||||
---
|
||||
|
||||
# Rendering Strategies
|
||||
|
||||
[MODES: framework]
|
||||
|
||||
## Introduction
|
||||
|
||||
There are three rendering strategies in React Router:
|
||||
|
||||
- Client Side Rendering
|
||||
- Server Side Rendering
|
||||
- Static Pre-rendering
|
||||
|
||||
## Client Side Rendering
|
||||
|
||||
Routes are always client side rendered as the user navigates around the app. If you're looking to build a Single Page App, disable server rendering:
|
||||
|
||||
```ts filename=react-router.config.ts
|
||||
import type { Config } from "@react-router/dev/config";
|
||||
|
||||
export default {
|
||||
ssr: false,
|
||||
} satisfies Config;
|
||||
```
|
||||
|
||||
## Server Side Rendering
|
||||
|
||||
```ts filename=react-router.config.ts
|
||||
import type { Config } from "@react-router/dev/config";
|
||||
|
||||
export default {
|
||||
ssr: true,
|
||||
} satisfies Config;
|
||||
```
|
||||
|
||||
Server side rendering requires a deployment that supports it. Though it's a global setting, individual routes can still be statically pre-rendered. Routes can also use client data loading with `clientLoader` to avoid server rendering/fetching for their portion of the UI.
|
||||
|
||||
## Static Pre-rendering
|
||||
|
||||
```ts filename=react-router.config.ts
|
||||
import type { Config } from "@react-router/dev/config";
|
||||
|
||||
export default {
|
||||
// return a list of URLs to prerender at build time
|
||||
async prerender() {
|
||||
return ["/", "/about", "/contact"];
|
||||
},
|
||||
} satisfies Config;
|
||||
```
|
||||
|
||||
Pre-rendering is a build-time operation that generates static HTML and client navigation data payloads for a list of URLs. This is useful for SEO and performance, especially for deployments without server rendering. When pre-rendering, route module loaders are used to fetch data at build time.
|
||||
|
||||
---
|
||||
|
||||
Next: [Data Loading](./data-loading)
|
||||
Reference in New Issue
Block a user