客户端渲染的链路是:服务器返回一个几乎空的 HTML,浏览器拿到后下载 JS bundle、解析执行、由框架把组件渲染进容器、再按需请求数据。用户看到首屏前要等这条完整链路跑完,因此首屏较慢、网络差时空白感强,爬虫抓不到内容,SEO 天然吃亏。
它的优点也很突出:首次加载后路由切换不再请求整页,交互流畅;服务器几乎只负责 API,部署成本极低;前后端彻底解耦,团队分工清晰。后台管理系统、在线文档、编辑器这类登录后重交互场景,CSR 仍是性价比最高的选择。
// 客户端渲染的最简形态:HTML 是空壳,全部内容由 JS 生成 // index.html 只有:<div id="app"></div><script src="app.js"></script> var routes = { '/': function () { return '<h1>首页</h1>'; }, '/list': function () { return '<ul><li>项目 A</li><li>项目 B</li></ul>'; } }; function render() { var path = location.hash.slice(1) || '/'; document.getElementById('app').innerHTML = (routes[path] || routes['/'])(); } window.addEventListener('hashchange', render); render(); // 页面初始时 #app 为空,上面这段 JS 执行完才看得见内容——这就是 CSR