
Next.js 與 React 的爭論方向錯了。Next.js 就是 React,它是建構在 React 之上的框架。2026 年的真正問題在於:你的專案是否需要伺服器端渲染框架的完整機制,還是採用精簡的 Vite + React + React Router v7 SPA 才是更明智的選擇。本文提供並列的 TypeScript 程式碼、真實效能數據與明確結論,而非模稜兩可的功能清單。
快速總結:Next.js 與 React + Vite 一覽表
選擇 Next.js,如果你的頁面需要在 Google 上被搜尋到。伺服器端渲染的 HTML、內建圖片優化與基於檔案的路由,使其成為公開網站的預設選擇。
選擇 React + Vite,如果你的應用程式位於登入牆之後。儀表板、管理後台與內部工具不需要 SSR,而 SPA 建置更簡單、託管成本更低,且開發速度更快。
| 類別 | Next.js | React + Vite (SPA) |
|---|---|---|
| 本質 | 全端 React 框架 | React + 建置工具 (SPA) |
| 渲染方式 | SSR, SSG, ISR, CSR | 僅 CSR |
| 路由 | 基於檔案 (App Router) | React Router v7 或 TanStack Router |
| SEO | 優秀 (預先渲染 HTML) | 不佳 (除非使用變通方案) |
| 初始載入 (LCP) | 1.1-1.8 秒 (SSG) | 2.8-3.5 秒 (CSR) |
| 套件大小 (執行時) | ~92KB | ~42KB |
| HMR 速度 | 100-300 毫秒 (Turbopack) | 低於 50 毫秒 (Vite) |
| 資料獲取 | Server Components, server actions | 客戶端 (TanStack Query, SWR) |
| 託管 | Node.js 伺服器或 Vercel | 任何靜態 CDN (有免費方案) |
| 學習曲線 | 較陡峭 (RSC, 檔案慣例) | 較低 (標準 React 模式) |
| 最適合 | 需要 SEO 的公開網站 | 儀表板、管理後台、需驗證的應用 |
| 結論 | SEO 關鍵與全端專案 | 儀表板、需驗證應用、原型開發 |
現在讓我們透過程式碼與數據深入分析這些差異。
真正的问题:框架 vs SPA
「Next.js vs React」暗示它們是替代方案,但事實並非如此。每個 Next.js 元件都是 React 元件。實際的決策在於兩種使用 React 的方法:
- 框架方法:Next.js 處理路由、渲染、資料獲取、圖片優化與部署慣例。你獲得許多開箱即用的功能,但必須遵循其規則。
- SPA 方法:你以 Vite 作為建置工具起步,加入 React Router v7(或 TanStack Router 以獲得類型安全的路由),並自行處理所有事項。意見較少,靈活性更高。
2026 年 React SPA 技術棧的真實樣貌
Create React App 已死。它已被正式棄用,React 團隊現在建議 SPA 專案使用 Vite。現代 SPA 技術棧如下:
- 建置工具: Vite (
npm create vite@latest my-app -- --template react-ts) - 路由:
react-router-domv7 或@tanstack/react-router - 資料獲取:
@tanstack/react-query(TanStack Query) - Head 管理:
react-helmet-async或 React Router 的meta函數
這就是生產環境就緒的 SPA。不需要框架。
React 團隊實際上怎麼說
React 文件建議使用框架作為預設起點,但他們明確列出 Vite 作為不適合框架假設之專案的認可建置工具。其中的細微差別很重要:React 的建議並非「永遠使用 Next.js」。而是「如果可能,使用框架;若不適用,則對 SPA 使用 Vite」。
結論:兩種方法都使用 React。問題在於你的專案是否需要 Next.js 額外提供的功能。
路由:基於檔案 vs 明確設定
路由是你最先感受到架構差異的地方。Next.js 透過檔案結構免費提供路由。Vite SPA 則需要你明確設定路由。
以下是兩種方法中擁有三個路由的簡單應用程式範例:
Next.js (App Router):
你的檔案結構就是你的路由設定:
app/
page.tsx -> /
about/page.tsx -> /about
dashboard/page.tsx -> /dashboard
layout.tsx -> shared layout路由只是一個檔案:
// app/about/page.tsx
export default function AboutPage() {
return (
<main>
<h1>About Us</h1>
<p>We build things with React.</p>
</main>
);
}React + Vite (React Router v7):
你在中央設定檔中定義路由:
// src/App.tsx
import { BrowserRouter, Routes, Route } from 'react-router-dom';
import { Home } from './pages/Home';
import { About } from './pages/About';
import { Dashboard } from './pages/Dashboard';
import { Layout } from './components/Layout';
export default function App() {
return (
<BrowserRouter>
<Routes>
<Route element={<Layout />}>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
<Route path="/dashboard" element={<Dashboard />} />
</Route>
</Routes>
</BrowserRouter>
);
}權衡取捨很直接。Next.js 消除了樣板程式碼,建立檔案即獲得路由。但基於檔案的路由帶有主觀性。如果你需要複雜的巢狀佈局、平行路由或非標準 URL 模式,你將在 Next.js 的慣例下工作。React Router 給予你完全的控制權,但你必須自行撰寫與維護設定。
若要深入了解 App Router 與其他框架路由系統的比較,請參閱我們的 Next.js vs Remix 比較。
結論:平手。 對於標準應用程式,Next.js 的樣板程式碼較少。對於複雜的路由需求,React Router 和 TanStack Router 提供更多控制權。取決於你重視慣例勝過設定的程度。
資料獲取:伺服器端 vs 客戶端
這是架構差異最為具體的地方。Next.js 在任何 HTML 到達瀏覽器之前,先在伺服器端獲取資料。Vite SPA 則在頁面載入後,於瀏覽器中獲取資料。
以下是兩種方法中獲取使用者列表的相同操作:
Next.js (Server Component):
// app/users/page.tsx -- runs on the server
import { db } from '@/lib/db';
export default async function UsersPage() {
const users = await db.user.findMany();
return (
<ul>
{users.map((user) => (
<li key={user.id}>{user.name}</li>
))}
</ul>
);
}沒有載入旋轉圖示。沒有 useEffect。資料以 HTML 形式到達,使用者立即看到內容。
React + Vite (TanStack Query):
// src/pages/Users.tsx -- runs in the browser
import { useQuery } from '@tanstack/react-query';
import { Spinner } from '../components/Spinner';
export default function UsersPage() {
const { data: users, isLoading, error } = useQuery({
queryKey: ['users'],
queryFn: () => fetch('/api/users').then((res) => res.json()),
});
if (isLoading) return <Spinner />;
if (error) return <p>Failed to load users.</p>;
return (
<ul>
{users.map((user: { id: string; name: string }) => (
<li key={user.id}>{user.name}</li>
))}
</ul>
);
}使用者先看到旋轉圖示,然後在 API 呼叫解析後看到內容。TanStack Query 完美處理快取、重新獲取與錯誤狀態,但初始渲染始終處於載入狀態。
實際的權衡取捨:Next.js 消除了初始頁面內容的載入旋轉圖示,這改善了感知效能與 SEO。但它增加了伺服器複雜度,你需要理解 'use client' 指令、伺服器/客戶端元件邊界,以及資料如何在它們之間流動。Vite SPA 更容易推論:一切都在瀏覽器中運行,每個元件遵循相同的規則。
結論:對於公開頁面,Next.js 勝出,因為載入旋轉圖示會損害 SEO 與使用者體驗。對於需驗證的頁面,React + Vite 勝出,因為短暫的載入狀態是可以接受的,且伺服器複雜度並不合理。
SEO:頁面分割決策軸
每篇比較文章都說「Next.js 對 SEO 更好」。這沒錯,但不完整。真正的問題是:你的專案真的需要 SEO 嗎?
頁面分割問題
這是一個能幫助你決策的框架。問問自己:我的頁面中有多少百分比需要被 Google 公開爬取?
- 80%+ 公開頁面(部落格、行銷網站、電商目錄),Next.js 是明確的選擇。 SSG 和 SSR 立即向爬蟲提供預先渲染的 HTML。靜態生成頁面的 LCP 達到 1.1-1.8 秒。
next/image元件自動產生srcset、延遲載入並轉換為 WebP。Next.js 的metadata匯出原生處理<title>、<meta>和 Open Graph 標籤。 - 80%+ 私有頁面(儀表板、管理後台、內部工具),React + Vite SPA 更簡單且足夠。 Google 永遠看不到這些頁面。SSR 增加了你無法受益的複雜度。SPA 傳遞一個
<div id="root">,由 JavaScript 處理一切,當可爬取性不重要時,這完全可以接受。 - 混合情況(具有公開行銷頁面與私有應用的 SaaS),Next.js 兩者兼顧。 對行銷頁面與登陸頁面使用 SSG。對已驗證的應用部分使用客戶端渲染(搭配
'use client')。單一程式碼庫,兩種渲染策略。
SaaS 混合案例
大多數 SaaS 產品都有行銷網站(需要 SEO)與應用程式(不需要)。Next.js 優雅地處理這一點:你的 /pricing 頁面是靜態生成的,而你的 /app/dashboard 路由则在客戶端渲染。你不需要兩個獨立的程式碼庫。
另一種選擇是分割:在 yourproduct.com 使用 Next.js 行銷網站,在 app.yourproduct.com 使用 Vite SPA。有些團隊偏好這種關注點分離。兩種方法都可行。
是的,Googlebot 可以執行 JavaScript(它運行最新版本的 Chrome)。但預先渲染的 HTML 對於索引來說更快且更可靠。你是在賭 Google 爬蟲每次都能完美運作,而当 SSG 可用時,你不必冒這個險。
結論:Next.js 在 SEO 方面勝出。 但如果你的頁面完全不需要 Google 索引,此優勢對你而言無關緊要。頁面分割問題是判斷 SEO 是否應納入決策的最快方法。
效能基準測試:真實數據
像「Next.js 更快」這樣模糊的說法對你沒有幫助。以下是比較兩種方法的真實數據:
| 指標 | Next.js (SSG) | React + Vite (SPA) | 勝者 |
|---|---|---|---|
| LCP (最大內容繪製) | 1.1-1.8 秒 | 2.8-3.5 秒 | Next.js |
| TTFB (首字節時間) | ~50 毫秒 (靜態) | ~200 毫秒+ (SPA 殼層 + API) | Next.js |
| 套件大小 (執行時) | ~92KB | ~42KB | React + Vite |
| 可互動時間 (驗證應用) | 較慢 (水合成本) | 較快 (無水合) | React + Vite |
| HMR (開發體驗) | 100-300 毫秒 | 低於 50 毫秒 | React + Vite |
這些是基於生產應用程式基準數據的典型範圍。實際數字取決於你應用程式的複雜度、優化努力與託管設定。
"Next.js SSG vs React + Vite SPA"
資料表
| "Metric" | "Next.js SSG" | "React + Vite SPA" |
|---|---|---|
| "LCP (seconds)" | 1.4 | 3.1 |
| "Bundle Size (KB)" | 92 | 42 |
模式很清晰:Next.js 在公開頁面的初始頁面載入上獲勝,因為 SSG 傳遞預先渲染的 HTML。瀏覽器無需等待 JavaScript 執行即可顯示內容。但 React + Vite 在套件大小與開發體驗上獲勝,42KB 對比 92KB 的執行時意味著瀏覽器需要解析的 JavaScript 更少,而 Vite 低於 50 毫秒的 HMR 使開發明顯更流暢。
若要深入探討 Turbopack 在建置速度與 HMR 方面如何與 Vite 抗衡,請參閱我們的 Turbopack vs Webpack vs Vite 比較。
結論:沒有絕對的「更快」。 Next.js 在公開頁面的初始載入上獲勝。React + Vite 在套件大小、需驗證應用的可互動時間與開發體驗上獲勝。你測量的指標決定了誰是贏家。
供應商鎖定與託管
讓我們談談房間裡的大象:Next.js 由 Vercel 建構。 某些功能,如大規模圖片優化、Edge Middleware、帶按需重新驗證的 ISR,在 Vercel 平台上運作最佳。這讓開發人員感到緊張,老實說,這確實值得你仔細思考。
現實情況比「你被鎖定了」更為細緻。Next.js 可在任何 Node.js 伺服器上運行。你可以對 Next.js 應用程式執行 docker build 並將其部署在 AWS、GCP 或你自己的基礎設施上。OpenNext 專案 提供了由 AWS (SST)、Cloudflare 和 Netlify 維護的開源適配器,支援功能齊全的自我託管。像英國 NHS、Udacity 和 Gymshark UK 這樣的生產用戶都在 Vercel 之外運行 Next.js。
但以下是 React + Vite 提供而 Next.js 無法匹敵的优势:零伺服器依賴。 Vite SPA 建置為靜態檔案。將它們部署到 Cloudflare Pages、Netlify、S3 儲存桶或 literally 任何 CDN。無需 Node.js 執行環境。無需伺服器成本。無需依賴供應商。
成本差異是真實存在的:
| 託管情境 | React + Vite SPA | Next.js (SSR) |
|---|---|---|
| 免費方案 | Cloudflare Pages, Netlify, Vercel (靜態) | Vercel 免費方案 (有限制) |
| 生產環境 (低流量) | $0/月 (靜態 CDN) | $5-20/月 (Node.js 伺服器) |
| 生產環境 (高流量) | 仍約 $0 (靜態很便宜) | $20-200+/月 (無伺服器可能會激增) |
結論:React + Vite 在託管簡單性與成本上勝出。 靜態 SPA 是 Web 開發中最便宜、最可移植的部署目標。Next.js 可部署在任何地方,但需要基礎設施規劃,特別是在 Vercel 之外。
何時 Next.js 是大材小用
大多數比較文章預設支持 Next.js。但誠實說明框架何時會增加不必要的複雜度,比假裝它總是正確答案更能建立信任。
以下情況 Next.js 是大材小用:
- 你的應用程式 100% 位於驗證之後。 Google 永遠看不到這些頁面。SSR 增加零價值。
'use client'/'use server'邊界增加了認知負擔卻無益處。 - 你正在建構內部工具或管理儀表板。 沒有公開用戶,沒有 SEO,沒有伺服器端渲染的理由。Vite SPA 開發更快且更易維護。
- 你正在製作原型或建構 MVP。 開發速度比初始載入效能更重要。Vite 更簡單的思維模型意味著需要學習的東西更少,出錯的東西也更少。
- 你的團隊不想要伺服器端複雜度。 React Server Components 功能強大,但 2025 React 狀態調查(3,700+ 受訪者)顯示對 RSC 的反應冷淡,抱怨其過度複雜。如果你的團隊對伺服器/客戶端邊界持反對態度,強制使用框架會拖慢你的進度。
開發者滿意度數據支持這一點。2024 JavaScript 狀態調查 顯示 Vite 是最受喜愛的建置工具第一名。同時,Next.js 保持 82% 的強勁保留率,但帶有 17% 的負面情緒,是所有主要元框架中最高的。開發者對 Vite 並不不滿。
結論:如果你的應用程式完全位於驗證之後,Next.js 会增加你不需要的複雜度。 Vite SPA 更簡單、開發更快,且託管幾乎免費。
決策框架:選擇正確的方法
這是速查表。找到你的專案類型,獲得建議:
| 你的專案 | 推薦 | 原因 |
|---|---|---|
| 行銷網站 / 登陸頁面 | Next.js | SSG 用於 SEO,next/image 用於效能 |
| 部落格或內容密集型網站 | Next.js | SSG/ISR 用於快速、可爬取的頁面 |
| 具有公開與私有頁面的 SaaS | Next.js | 同時處理 SSR (公開) 與 CSR (應用) |
| 具有產品頁面的電商 | Next.js | SEO 關鍵的產品頁面需要預先渲染 |
| 儀表板 / 管理後台 | React + Vite | 不需要 SEO,技術棧更簡單,開發體驗更快 |
| 內部公司工具 | React + Vite | 需驗證,零 SEO 需求 |
| 原型 / MVP | React + Vite | 啟動更快,託管更便宜,複雜度更低 |
| Electron / 桌面應用 | React + Vite | 桌面應用中無伺服器端渲染 |
一篇比較文章似乎從未給出的建議:如果不確定,請從 React + Vite 開始。 你隨時可以遷移到 Next.js,官方遷移指南 詳盡且記錄良好。反向操作,從 Next.js 應用程式中提取 SPA,則較為混亂。
遷移觸發點:何時從 SPA 遷移至 Next.js
從 Vite SPA 開始並不意味著你被困住。以下是三個明確的信號,表明是時候遷移了:
- SEO 變得至關重要。 你正在建構需要在 Google 上排名的公開頁面,而你的 SPA 的 JavaScript 渲染內容無法可靠地被索引。預先渲染的 HTML 能立即解決此問題。
- 初始載入時間影響轉化率。 你的登陸頁面在內容出現前顯示 2-3 秒的白屏。LCP 高於 2.5 秒 與較高的跳出率相關。SSG 將其降至 1.1-1.8 秒。
- 你想消除獨立的後端 API。 Server Components 和 server actions 允許你直接從 React 元件查詢資料庫,無需獨立的 Express 或 Fastify API 伺服器。如果維護兩個程式碼庫(前端 + API)正在消耗你的開發速度,Next.js 將它們整合。
遷移時實際改變的內容
以下是你將接觸到的實用檢查清單:
- 路由: React Router 設定檔 ->
app/目錄中基於檔案的路由 - 資料獲取: 全部使用 TanStack Query -> 初始資料使用 Server Components + 突變與即時更新使用 TanStack Query
- 元件: 向每個使用 hooks 或瀏覽器 API 的現有元件添加
'use client' - 圖片:
<img>標籤 ->next/image元件 - 環境變數:
VITE_前綴 ->NEXT_PUBLIC_前綴 - 建置設定:
vite.config.ts->next.config.ts - Package 腳本:
vite dev->next dev,vite build->next build
從 Vite 遷移的官方 Next.js 遷移指南 詳細介紹了每個步驟。這是 React 生態系統中較好的遷移指南之一。
Techsy 如何處理框架與 SPA 決策
當客戶帶著新專案来找我們時,我們在編寫任何一行程式碼之前會進行簡短的檢查清單:
- 專案是否有需要 SEO 的公開頁面? 如果是,Next.js 是預設選擇。行銷頁面使用 SSG,動態內容使用 SSR。
- 是否有現有 API,或者我們需要建構一個? 如果還沒有後端,Next.js server actions 可以完全消除對獨立 API 伺服器的需求。
- 團隊對 Next.js 慣例的经验如何? 如果團隊熟悉 React 但對 Server Components 和
'use client'邊界不熟悉,我們會考慮學習時間。有時 Vite SPA 能提前數週發布。 - 託管預算與偏好是什麼? Vite SPA 部署到免費 CDN 層級。Next.js SSR 需要伺服器基礎設施。對於精打細算的初創公司,這種差異很重要。
我們大多數的 SaaS 專案最終都使用 Next.js,在單一程式碼庫中同時處理公開行銷頁面與已驗證應用的能力確實強大。但我們的內部工具和客戶儀表板呢?那些是 React + Vite SPA。當公司外部的人永遠不會看到這些頁面時,框架開銷是不合理的。
我們不會預設對所有事物使用 Next.js。我們為那些專案證明不需要框架開銷的客戶交付了生產環境的 Vite SPA,而那些專案因此發布得更快。
不確定哪種方法適合你的專案?獲得免費諮詢,我們將針對你的特定用例引導你了解權衡取捨。
常見問題
Next.js 比 React 更好嗎?
它們不是直接的競爭對手。Next.js 是建構在 React 之上的框架。問題在於你是否需要 Next.js 添加的功能:伺服器端渲染、基於檔案的路由與伺服器元件。對於 SEO 關鍵的公開頁面,Next.js 是更強的選擇。對於需驗證的應用,React + Vite 通常是更好的契合,因為它避免了不必要的伺服器複雜度。
我應該先學 React 還是 Next.js?
先學 React。Next.js 建構在 React 之上,你需要理解元件、hooks 與狀態管理,Next.js 慣例才會有意義。花兩到三週時間學習核心 React,如果你的專案需要伺服器端渲染或 SSG,再探索 Next.js。
你可以將 Next.js 與 React 一起使用嗎?
Next.js 就是 React。每個 Next.js 元件都是 React 元件。Next.js 在 React 核心庫之上添加了伺服器端渲染、路由與優化。
Next.js 會取代 React 嗎?
不會。Next.js 依賴 React,沒有它就無法存在。React 是 UI 庫;Next.js 是使用 React 的框架。它們是堆疊的不同層級,且由不同團隊積極維護。
Next.js 對 SEO 有益嗎?
非常有益。Next.js 將頁面預先渲染為 HTML,搜尋引擎可以立即索引。Vite SPA 發送一個空的 <div id="root">,需要執行 JavaScript 才能看到內容。對於需要在 Google 上排名的頁面,Next.js 具有明顯優勢,靜態生成頁面的 LCP 時間為 1.1-1.8 秒。
何時應該在不使用 Next.js 的情況下使用 React?
當你的應用不需要 SEO(儀表板、管理後台、內部工具)時,當你希望擁有更簡單的開發體驗而無需伺服器/客戶端元件邊界時,當你希望更便宜的託管(CDN 上的靜態檔案幾乎免費)時,或者當你正在建構原型且開發速度比初始載入效能更重要時。
Next.js 與 React 之間的區別是什麼?
React 是用於建構使用者介面的 JavaScript 庫。Next.js 是建構在 React 之上的全端框架,添加了伺服器端渲染、基於檔案的路由、圖片優化與 API 路由。React 處理視圖層;Next.js 處理整個應用程式架構,包括渲染策略、路由與伺服器端邏輯。
Next.js 比 React 快嗎?
取決於你測量的內容。對於公開頁面的初始頁面載入,Next.js SSG 傳遞預先渲染的 HTML,LCP 為 1.1-1.8 秒,而典型 SPA 為 2.8-3.5 秒。對於執行時互動性與開發體驗,React + Vite 可能更快,因為其套件更小(42KB 對比 92KB)且 HMR 低於 50 毫秒。
Create React App 在 2026 年已死嗎?
是的。自 React 19 以來,CRA 已被正式棄用。React 團隊建議 Vite 作為 SPA 專案的替代品。如果你要啟動新的 React SPA,請使用 npm create vite@latest my-app -- --template react-ts 來使用 Vite 與 TypeScript 搭建骨架。
Next.js 需要 Vercel 進行託管嗎?
不需要。Next.js 可在任何 Node.js 伺服器上運行。你可以使用 Docker 部署,或在 AWS(透過 OpenNext 專案)、Cloudflare 或任何支援 Node.js 的託管提供商上部署。某些功能如 Edge Middleware 與大規模圖片優化在 Vercel 上運作最佳,但框架本身並未鎖定在任何平台上。
Next.js 對於小型專案來說是大材小用嗎?
經常如此。如果你的專案是儀表板、內部工具或沒有 SEO 需求的原型,Server Components、基於檔案的路由慣例與伺服器/客戶端邊界增加的複雜度可能不合理。對於這些用例,Vite + React SPA 在設置、開發與部署上更簡單。
我可以將 Vite 與 Next.js 一起使用嗎?
不可以。Next.js 使用自己的建置系統,從 Next.js 15 及更高版本開始使用 Turbopack。Vite 與 Turbopack 是替代的建置工具;你只能使用其中之一。如果你想要 Vite 的開發體驗,請使用 Vite + React SPA 設置。如果你想要 Next.js 的功能,請使用 Turbopack。
最終結論:Next.js vs React + Vite
| 類別 | 勝者 | 原因 |
|---|---|---|
| SEO | Next.js | 預先渲染 HTML,公開頁面的 Core Web Vitals 更佳 |
| 初始頁面載入 | Next.js | SSG 立即傳遞 HTML;SPA 需要 JS 執行 |
| 套件大小 | React + Vite | 42KB 對比 92KB 執行時 |
| 開發體驗 | React + Vite | 更快的 HMR,更簡單的思維模型,無伺服器/客戶端邊界 |
| 託管簡單性 | React + Vite | 任何 CDN 上的靜態檔案,零伺服器成本 |
| 全端能力 | Next.js | Server Components, server actions, API 路由 |
| 需驗證應用 | React + Vite | Google 永遠看不到的頁面无需 SSR 開銷 |
| 靈活性 | React + Vite | 無供應商意見,可部署在任何地方 |
| 整體 | 取決於 SEO | 頁面需要 Google 索引:Next.js。無公開頁面:React + Vite。 |
計分板看起來持平,4 比 4,但決勝點是你的 SEO 需求。如果你的頁面需要 Google 索引,Next.js 是正確的選擇。渲染、路由與優化功能證明了增加的複雜度是合理的。如果你的應用位於驗證之後且 Google 永遠不會爬取它,React + Vite 更簡單、開發更快且託管更便宜。
不要為此苦惱。如果不確定,請從 React + Vite 開始。遷移至 Next.js 的路徑記錄良好且直接。反向操作,從框架中提取 SPA,則較為困難。評估你的頁面分割比例,做出選擇,然後開始建構。