next.js - SSR

SSR, server side rendering.

CSR vs SSR vs SSG

  • CSR (Client Side Rendering)

    • 網頁起始無內容,在網頁 mounted 後才取得內容。故SEO無效因為搜尋引擎看不到商品目錄。

    • 適合資訊不公開等保密性較高的應用。

  • SSR (Server Side Rendering)

    • 於 request 時決定了網頁起始內容。SEO有效。網頁內容在操作後可變動,即商品目錄可下查詢條件而變動。

    • 適合有商品目錄類的應用。

  • SSG (Static Side Generation)

    • 於 build/bundle 時期決定了內容,產出全靜態網站。SEO有效。因為是靜態屬性所以內容無法變更,即商品目錄無法變動頂多隱藏或顯示。

    • 適合海報、廣告類的應用。

getServerSideProps

getServerSideProps重點整理

Next.js的SSR能力是透過此函式getServerSideProps實作。下面列出幾個要點:

  1. 此函式只會在 Server Side 執行。

  2. 此函式內的內容不會送到前端。

  3. 此函式可以取用後端全部資源,包含後端檔案讀寫與DB Access。

  4. 此函式只在網頁 "page" 進入點有效。如:pages/index.tsx

  5. 此函式在每次 request 都會觸發。

程式碼紀錄

沒圖沒真象

測試網址:http://localhost:3000/demo/dm0010?category=文書

產生畫面如下,簡易的商品清單。

解析產生的 html 碼中可以看到商品目錄訊息,這在CSR模式下是看不到的。

EOF

Last updated