网页制作架构最小集:单页 vs 多页 vs 内容站,怎么选?

HTMLPAGE 团队
15 分钟阅读

在选技术栈之前,先搞清楚'网站架构':单页应用 vs 多页面 vs 内容站的区别、信息结构如何决定技术栈选择、以及各自的成本与维护边界。

#网页制作 #网站架构 #建站 #信息结构 #技术选型

很多人建网站的顺序是:

  1. 看中一个建站工具(Wix/Squarespace/HTMLPage)
  2. 直接开干,边做边调
  3. 做到一半发现"原来应该这样架构就不用重做了"

核心问题:没有在"选工具"之前,先理清"网站是什么类型的"。

这篇文章的目标是:让你在选技术栈之前,先搞清楚"网站架构"——而且这个选择会直接影响你的工作量、维护成本和能支持的功能范围


结论先说:网站架构决定技术栈,不是反过来

根据你的内容更新频率交互复杂度用户群体,网站可以分为三类:

类型内容更新交互典型例子适合工具维护成本
内容站频繁(周期性发文)简单(导航、搜索、分页)博客、文档、教程站CMS / 静态生成器 / HTMLPage⭐ 低
多页应用中等(定期更新页面内容)中等(表单、筛选、评论)企业官网、产品介绍、投资组合建站工具 / Vue SSR / Nuxt⭐⭐ 中
单页应用低(主要是后端数据变化)复杂(实时更新、多步骤流程)SaaS 工具、在线编辑器、仪表板Vue/React CSR / Nuxt CSR⭐⭐⭐ 高

机制讲清楚:为什么架构而不是工具优先

错误的决策顺序

很多人是这样选的:

"我听说 Nuxt 很火" 
  → "我就用 Nuxt 建网站吧"
  → 做到一半发现"需要 CMS"
  → "那就加一个 Strapi 吧"
  → 越来越复杂,最后项目维护不动

正确的决策顺序

你的网站内容,谁在管理?
├─ 我自己(手工更新页面)
│   └─ 更新频率?← 关键问题
│       ├─ 很频(每周 > 3 篇新文章)
│       │   └─ 需要 CMS。工具:Strapi + Nuxt,或 WordPress,或 HTMLPage Blog
│       └─ 不那么频(每月 1~2 次)
│           └─ 静态化足够。工具:Git + Markdown,或建站工具
│
├─ 多个人(销售/运营更新页面)
│   └─ 需要 CMS Dashboard
│       └─ 工具:Strapi + Admin,或 Webflow,或 Framer
│
└─ 只有数据变化(内容不变,数据从 API 来)
    └─ 需要 SPA。工具:Vue/React CSR,或 Nuxt CSR

实战案例 1:内容站(博客 / 教程站)

典型特征

  • 作者定期发文章(周 2~3 篇)
  • 文章有分类、tags、搜索
  • 页面结构相对固定(列表页 → 详情页)
  • 不需要复杂交互

最小架构长这样

├─ /blog/                    (列表页,显示最新 N 篇)
│   ├─ /blog/tag/ai/         (按 tag 筛选)
│   └─ /blog/[slug]/         (文章详情页)
├─ /              (首页)
├─ /about/       (关于我们,静态)
├─ /contact/     (联系表单)
└─ /sitemap.xml  (SEO)

适合的工具

  1. Git + Markdown(推荐给技术人)
    content/blog/[slug].md      # 用 Markdown 写文章
    → 提交到 Git
    → CI/CD 自动生成静态网站
    → 部署到 Vercel / Netlify
    

    优点:完全版本控制、快、免费 缺点:非技术人员编辑困难
  2. Strapi + Nuxt(推荐给多人协作)
    Strapi 后端
    → 运营/编辑在 Dashboard 写文章
    → Nuxt 前端自动生成页面 (SSG)
    → 有必要时实时更新
    

    优点:非技术人员友好、灵活 缺点:需要维护服务器
  3. HTMLPage(推荐给不想写代码的人)
    可视化编辑每个页面
    → 系统自动管理分类/搜索/SEO
    → 实时发布
    

    优点:最快上线、无需 IT 维护 缺点:个性化受限

案例数据:一个技术博客(周 2 篇文章)

  • Git + Markdown: 时间成本 = 写文章 + commit,月成本 = 0
  • Strapi + Nuxt:时间成本 = 写文章,月成本 = 服务器 $5~20
  • HTMLPage:时间成本 = 写文章 + 编辑,月成本 = 服务费(取决于流量)

实战案例 2:多页应用(企业官网 / 产品站)

典型特征

  • 页面相对固定(产品介绍、客户案例、定价、FAQ)
  • 定期更新(月 1~2 次,改个案例、改个定价)
  • 有表单交互(联系我们、预约演示)
  • 需要 SEO(官网流量关键)

最小架构

├─ /                   (首页)
├─ /product/           (产品介绍)
│   └─ /product/[slug]/  (各产品详情)
├─ /pricing/           (定价)
├─ /case-studies/      (客户案例)
├─ /blog/              (可选,定期发内容)
├─ /faq/               (常见问题)
├─ /contact/           (联系表单 — 需要 backend API)
└─ /api/contact        (表单提交 endpoint)

适合的工具

  1. 建站工具(Webflow / Framer / HTMLPage)
    拖拽编辑 → 自动生成响应式页面 → 配内置表单 → 发布
    

    优点:最快、无需代码、内置 SEO 缺点:个性化受限、价格较高
  2. Nuxt SSR(推荐给需要灵活定制的)
    pages/index.vue, pages/product/[slug].vue, ...
    → 动态路由
    → SEO 友好(SSR 生成完整 HTML)
    → 可集成 CMS 管理内容
    

    优点:完全灵活、SEO 好 缺点:需要开发者、需要服务器

决策树

企业官网,需要改内容吗?
├─ 不怎么改(每年改一次)
│   └─ 用建站工具(快)
├─ 经常改(月 2~3 次)
│   ├─ 有开发团队
│   │   └─ 用 Nuxt(灵活)
│   └─ 没有开发团队
│       └─ 用建站工具(简单)

实战案例 3:单页应用(SaaS / 数据驱动)

典型特征

  • 用户登录后看个性化数据
  • 内容页面基本不变,数据从 API 来
  • 交互复杂(拖拽、搜索、筛选、实时更新)
  • 不是内容导向,而是功能导向

例子:在线编辑器、项目管理工具、购物车

最小架构

前端(单页应用)
├─ 用户认证(登录/注册)
├─ 仪表板(显示用户数据)
├─ 功能页(编辑器、设置等)
└─ 与后端通过 API 通信(开/改/删数据)

后端(REST API / GraphQL)
├─ 用户管理
├─ 数据存储与业务逻辑
└─ 权限控制

适合的工具

  1. Vue 3 CSR(Client-Side Rendering)
    import { createApp } from 'vue'
    // 用户打开页面
    // → 浏览器下载 JS 包
    // → JS 运行,调用 API 获取数据
    // → 显示内容
    

    优点:交互快、用户体验好 缺点:首屏可能慢、SEO 不友好(不过 SaaS 通常不需要 SEO)
  2. Cursor 在线编辑器(本项目)
    SPA 框架(Vue/GrapesJS)
    + Nitro 后端(保存用户编辑)
    + SQLite / Strapi(持久化存储)
    

不适合的选择

  • ❌ 用 Nuxt SSR 做 SPA(不必要,浪费资源)
  • ❌ 用建站工具(无法处理复杂交互)

选择矩阵:快速决策表

问题答案推荐架构
内容更新频率?周 > 2 篇文章内容站 + CMS 或 Git
月 1~2 次改页面多页应用 + 建站工具
很少改(只有数据)单页应用
SEO 重要吗?是(官网/内容站)SSR / SSG(Nuxt SSR/建站工具)
否(内部工具/SaaS)CSR(Vue/React)
有开发团队吗?代码优先(Nuxt/Vue/React)
无代码优先(建站工具/CMS)
用户数量?< 1000/月简单架构 + Vercel/Netlify 免费层
> 10000/月自建服务器 or 专业建站工具

Checklist:确定架构后的行动

  • 明确内容更新频率(周/月/年)
  • 明确谁在更新内容(开发者 / 非技术人员 / 团队)
  • SEO 需求有多高?(0-10 分)
  • 交互复杂度?(简单 / 中等 / 复杂)
  • 根据上表选择架构类型
  • 根据团队能力选择具体工具
  • 列出页面结构(URL 路径树)
  • 定义"页面模板"(尽量复用设计)

FAQ

Q:我想要"既可以实时互动,又要 SEO 好",怎么办?

A:用 Nuxt SSR + 少量前端交互。不是纯 SPA,而是:

  • 列表页面:SSR 生成完整 HTML(SEO 好)
  • 列表里的"搜索/筛选":前端交互(快)

Q:中途能改架构吗?(比如从建站工具改成代码)

A:能,但成本高。建议一开始就选对。规则是:

  • 建站工具 → 代码:需要手工迁移内容(很慢)
  • 代码 → 建站工具:基本迁移不了

Q:单页应用能做 SEO 吗?

A:困难。除非:

  1. 用 Nuxt SSR(不是纯 SPA 了)
  2. 或者配合 prerender(预先生成 HTML)

但大多数 SaaS(登录后的功能)不需要 SEO,所以无所谓。

Q:同时需要"内容站 + SPA 工具"怎么选?

A:分离:

内容站:Nuxt SSG (localhost:3000)
工具:Vue CSR (localhost:3001)
或者一个 Nuxt 项目里分两个路由:
/blog/...  → SSG 内容
/app/...   → CSR 工具

内链