使用 JavaScript 框架進行伺服器端渲染 (SSR)


在當今快節奏的 Web 開發環境中,交付高效能且對搜尋引擎友好的網站至關重要。實現此目標的一種有效方法是透過伺服器端渲染 (SSR)。在本文中,我們將探討如何使用 JavaScript 框架實現 SSR,以及程式碼示例、解釋和輸出,以幫助您在專案中充分利用 SSR 的潛力。

瞭解伺服器端渲染

伺服器端渲染涉及在伺服器上生成 HTML 內容並將其傳送到客戶端,客戶端會立即顯示該內容。這種方法與客戶端渲染 (CSR) 相反,在 CSR 中,瀏覽器從伺服器檢索最少的 HTML,然後使用客戶端上的 JavaScript 渲染內容。

伺服器端渲染的優勢

  • 效能提升  SSR 最大限度地減少了首次有意義繪製的時間,因為伺服器會將預渲染的 HTML 傳送到客戶端。這導致頁面載入時間更快,並提供更好的使用者體驗。

  • 搜尋引擎最佳化  搜尋引擎可以輕鬆抓取和索引伺服器端渲染的頁面,從而提高搜尋引擎排名和可發現性。

  • 社交媒體分享  伺服器端渲染的頁面為社交媒體平臺提供豐富的內容,確保共享連結顯示準確的預覽並有效地吸引使用者。

使用 JavaScript 框架實現伺服器端渲染

讓我們深入瞭解使用流行的 JavaScript 框架實現 SSR 的實踐。

使用 Next.js 的 React.js

使用 Create React App 建立一個新的 React 專案。開啟您的終端並執行以下命令:

npx create-react-app my-ssr-app

這將在名為 my-ssr-app 的新目錄中建立一個具有基本 React 專案結構的專案。

切換到專案目錄:

cd my-ssr-app

安裝 Next.js 作為依賴項:

npm install next react react-dom

示例

將 src/index.js 檔案的內容替換為以下程式碼:

import React from 'react';

const Home = () => {
   return (
      <div>
         <h1>Welcome to SSR with React and Next.js!</h1>
      </div>
   );
};

export default Home;

在專案的 src 目錄下建立一個名為 pages 的新目錄:

mkdir src/pages

將 src/index.js 檔案移動到 src/pages 目錄:

mv src/index.js src/pages/index.js

開啟 package.json 檔案,並將現有的“scripts”部分替換為以下程式碼:

"scripts": {
   "dev": "next dev"
},

儲存更改,然後在終端中執行以下命令以啟動開發伺服器:

npm run dev

開啟瀏覽器並導航到 https://:3000。

輸出

使用 Nuxt.js 的 Vue.js

與 React 類似,Vue.js 還提供了一個名為 Nuxt.js 的強大的 SSR 框架。

透過開啟您的終端並執行以下命令來建立一個新的 Nuxt.js 專案:

npx create-nuxt-app my-ssr-app

這將在名為 my-ssr-app 的新目錄中建立一個具有基本 Nuxt.js 專案結構的專案。

切換到專案目錄:

cd my-ssr-app

示例

開啟 pages/index.vue 檔案,並將現有內容替換為以下程式碼:

<template>
   <div>
      <h1>Welcome to SSR with Vue and Nuxt.js!</h1>
   </div>
</template>

<script>
export default {
   name: 'Home',
};
</script>

儲存更改,開發伺服器將自動重新載入更新後的內容。

透過執行以下命令啟動開發伺服器:

npm run dev

在 https://:3000 處重新整理您的瀏覽器。

輸出

Angular 與 Angular Universal

Angular 是一種全面的 JavaScript 框架,它提供 Angular Universal 來啟用伺服器端渲染。

首先,使用 npm 安裝 Angular Universal:

npm install --save @nguniversal/express-engine

示例

接下來,建立一個新檔案 src/app/home.component.ts,並新增以下程式碼:

import { Component } from '@angular/core';

@Component({
   selector: 'app-home',
   template: `
      <div>
         <h1>Welcome to SSR with Angular and Angular Universal!</h1>
      </div>
  `,
})
export class HomeComponent {}

使用以下程式碼更新 src/app/app.module.ts 檔案:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { HomeComponent } from './home.component';

@NgModule({
   imports: [BrowserModule],
   declarations: [AppComponent, HomeComponent],
   bootstrap: [AppComponent],
})
export class AppModule {}

最後,執行以下命令以啟動開發伺服器:

npm run dev:ssr

在瀏覽器中導航到 https://:4000,您將看到伺服器端渲染的輸出。

輸出

結論

伺服器端渲染在效能、SEO 和社交媒體分享方面提供了顯著的優勢。像 React.js 與 Next.js、Vue.js 與 Nuxt.js 以及 Angular 與 Angular Universal 這樣的 JavaScript 框架提供了強大的 SSR 解決方案。

透過利用 SSR 的強大功能,開發人員可以增強使用者體驗、提高搜尋引擎可見性並交付高度最佳化的網站。透過本文提供的程式碼示例和解釋,您現在擁有了使用 JavaScript 框架在專案中實現 SSR 的堅實基礎。立即開始探索 SSR,並釋放 Web 應用程式的全部潛力。

更新於: 2023年7月25日

472 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告