Add note about GS(S)P imports (#13475)
As reported here: https://twitter.com/vvoyer/status/1246913957899763712?s=21
This commit is contained in:
parent
96c3b08701
commit
f0ff77ed88
1 changed files with 10 additions and 0 deletions
|
@ -47,6 +47,9 @@ The `context` parameter is an object containing the following keys:
|
|||
- `preview` is `true` if the page is in the preview mode and `false` otherwise. See the [Preview Mode documentation](/docs/advanced-features/preview-mode.md).
|
||||
- `previewData` contains the preview data set by `setPreviewData`. See the [Preview Mode documentation](/docs/advanced-features/preview-mode.md).
|
||||
|
||||
> **Note**: You can import modules in top-level scope for use in `getStaticProps`.
|
||||
> Imports used in `getStaticProps` will not be bundled for the client-side, as [explained below](#write-server-side-code-directly).
|
||||
|
||||
### Simple Example
|
||||
|
||||
Here’s an example which uses `getStaticProps` to fetch a list of blog posts from a CMS (content management system). This example is also in the [Pages documentation](/docs/basic-features/pages.md).
|
||||
|
@ -202,6 +205,8 @@ Because `getStaticProps` runs at build time, it does **not** receive data that
|
|||
|
||||
Note that `getStaticProps` runs only on the server-side. It will never be run on the client-side. It won’t even be included in the JS bundle for the browser. That means you can write code such as direct database queries without them being sent to browsers. You should not fetch an **API route** from `getStaticProps` — instead, you can write the server-side code directly in `getStaticProps`.
|
||||
|
||||
You can use [this tool](https://next-code-elimination.now.sh/) to verify what Next.js eliminates from the client-side bundle.
|
||||
|
||||
#### Statically Generates both HTML and JSON
|
||||
|
||||
When a page with `getStaticProps` is pre-rendered at build time, in addition to the page HTML file, Next.js generates a JSON file holding the result of running `getStaticProps`.
|
||||
|
@ -440,6 +445,9 @@ The `context` parameter is an object containing the following keys:
|
|||
- `preview`: `preview` is `true` if the page is in the preview mode and `false` otherwise. See the [Preview Mode documentation](/docs/advanced-features/preview-mode.md).
|
||||
- `previewData`: The preview data set by `setPreviewData`. See the [Preview Mode documentation](/docs/advanced-features/preview-mode.md).
|
||||
|
||||
> **Note**: You can import modules in top-level scope for use in `getServerSideProps`.
|
||||
> Imports used in `getServerSideProps` will not be bundled for the client-side, as [explained below](#only-runs-on-server-side).
|
||||
|
||||
### Simple example
|
||||
|
||||
Here’s an example which uses `getServerSideProps` to fetch data at request time and pre-renders it. This example is also in the [Pages documentation](/docs/basic-features/pages.md).
|
||||
|
@ -514,6 +522,8 @@ export default Page
|
|||
- When you request this page directly, `getServerSideProps` runs at the request time, and this page will be pre-rendered with the returned props.
|
||||
- When you request this page on client-side page transitions through `next/link` ([documentation](/docs/api-reference/next/link.md)) or `next/router` ([documentation](/docs/api-reference/next/router.md)), Next.js sends an API request to the server, which runs `getServerSideProps`. It’ll return JSON that contains the result of running `getServerSideProps`, and the JSON will be used to render the page. All this work will be handled automatically by Next.js, so you don’t need to do anything extra as long as you have `getServerSideProps` defined.
|
||||
|
||||
You can use [this tool](https://next-code-elimination.now.sh/) to verify what Next.js eliminates from the client-side bundle.
|
||||
|
||||
#### Only allowed in a page
|
||||
|
||||
`getServerSideProps` can only be exported from a **page**. You can’t export it from non-page files.
|
||||
|
|
Loading…
Reference in a new issue