JS 框架 词条目录
前端Wiki/词条/单页与多页应用

单页与多页应用

定义SPA 是一个壳页面内靠 JS 切换视图,MPA 是每个页面一次完整请求,两者在体验与架构上各有取舍

单页应用(SPA)只加载一次 HTML,之后所有跳转由前端路由接管,局部更新 DOM。优点是切换流畅、前后端分离彻底;代价是首屏要下载整个应用的 JS,SEO 天然弱势,离开了框架与构建工具几乎没法维护。

多页应用(MPA)每次跳转都由服务器返回新 HTML,天然 SEO 友好、首屏轻、不依赖 JS 也能跑;但页面间切换有白屏、状态不易保留、交互丰富度受限。现在的常见选型是后台与工具类系统用 SPA,官网、电商、内容站用 SSR/SSG 的 MPA。

JavaScript
// 前端路由的最小实现:SPA 切页不刷新(hash 模式演示)
var routes = {
  '/': function () { return '<h1>首页</h1><a href="#/about">关于</a>'; },
  '/about': function () { return '<h1>关于页</h1><a href="#/">回首页</a>'; }
};

function render() {
  var path = location.hash.slice(1) || '/';
  var view = routes[path] || routes['/'];
  document.getElementById('app').innerHTML = view();
}

window.addEventListener('hashchange', render);
render();  // MPA 对比:传统做法是每个页面一个 .html,跳转由服务器返回整页
⚠ 常见误区
🔗 相关词条前端生命周期
← 返回来源章节前端