Pages
info
Unlike Next.js, you can have many
pages/ folders nested inside app/. This way pages can be organized neatly, especially for larger projects.In Blitz, a page is a
React Component exported from a.js, .jsx, .ts, or .tsx file in a pages directory. Each page is associated with a route based on its file name.All of the following are valid pages:
app/pages/about.tsxapp/projects/pages/projects/index.tsxapp/tasks/pages/projects/[projectId]/tasks/[taskId].tsx
Example: If you create
app/pages/about.js that exports a React component like below, it will be accessible at /about.function About() {return <div>About</div>}export default About
Pages with Dynamic Routes
Blitz supports pages with dynamic routes. For example, if you create a file called
app/pages/posts/[id].js, then it will be accessible at posts/1, posts/2, etc.To learn more about routing, check the
Routing documentation.
Automatic Static Optimization
By default, Blitz pre-renders the static HTML for every page unless you explicitly opt-in to server-side rendering.
For pages with dynamic data, the page's loading state will be pre-rendered.
Static Page Generation for Unauthenticated Pages
For pages accessible by anyone without authentication, we recommend using
getStaticProps so the page, along with it's data, is 100% statically generated during pre-rendering (like Gatsby). Then the entire static page can be cached on a CDN. This is perfect for public pages like blog posts.There are two methods for use with static generation, and you'll often use both together.
getStaticProps- To load the data for your page. See thegetStaticPropsdocumentation for more details.getStaticPaths- To load the possible paths for your page. See thegetStaticPathsdocumentation for more details.
Server-side Rendering
Also referred to as "SSR" or "Dynamic Rendering".
If a page uses Server-side Rendering, the page HTML is generated on each request.
To use Server-side Rendering for a page, you need to
export an async function called getServerSideProps. This function will be called by the server on every request.See the
getServerSideProps documentation for more details.