index
CSR/ client-side rendering'use client'

Shell delivered, UI painted in the browser.

pattern
CSRClient-Side Rendering

Shell delivered, UI painted in the browser.

pros
  • +highly interactive
  • +rich ux
cons
  • slower first paint
  • weaker seo
use-cases
  • dashboards
  • web apps
  • admin panels
flowshell → js → paint
  1. 01shell html
  2. 02download js
  3. 03execute
  4. 04render ui
liverendered in the browser
hydrating…
sourceapp/csr/page.tsx
app/csr/page.tsxtsx
1'use client'
2import { useState, useEffect } from 'react'
3
4export default function Page() {
5 const [data, setData] = useState('')
6 useEffect(() => {
7 setData(new Date().toISOString())
8 }, [])
9 return <div>{data}</div>
10}
hint

view source: the timestamp is absent from initial html — javascript fills it after hydration.