[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-21":3,"comments-21":29},{"id":4,"title":5,"summary":6,"cover":7,"author":8,"tags":12,"viewCount":20,"likeCount":21,"collectCount":22,"commentCount":4,"status":23,"publishedAt":24,"contentMd":25,"contentHtml":26,"likedByMe":27,"collectedByMe":27,"updatedAt":28},21,"SSR 与 CSR 的边界：什么时候该用服务端渲染","SSR 与 CSR 的边界：什么时候该用服务端渲染——一篇关于工程实践与性能优化的深度文章。",null,{"id":9,"username":10,"avatar":7,"bio":11},2,"CodeMaster","热爱技术写作的开发者 #2",[13,16],{"id":9,"name":14,"slug":15},"前端","frontend",{"id":17,"name":18,"slug":19},5,"数据库","database",463,45,42,"published","2026-09-09T05:56:00.708Z","\n# SSR 与 CSR 的边界：什么时候该用服务端渲染\n\n> 这是一篇由种子脚本生成的示例文章，用于演示 DevShare（技享）的排版与数据流。\n\n## 背景\n\n在大型 Web 应用中，**性能** 与 **可维护性** 常常是团队面临的核心挑战。本文将从工程实践出发，分享一套可落地的方案。\n\n## 核心思路\n\n1. 先确定性能指标与验收标准；\n2. 用数据驱动优化，而不是凭感觉；\n3. 关注关键路径，缓存一切可以缓存的内容。\n\n```ts\nconst greeting = (name: string) => `Hello, ${name}!`\nconsole.log(greeting('DevShare'))\n```\n\n## 小结\n\n优化没有银弹，但**持续度量 + 渐进改进** 永远是正确的方向。欢迎在评论区交流你的实践。\n","\u003Ch1>SSR 与 CSR 的边界：什么时候该用服务端渲染\u003C\u002Fh1>\u003Cp>这是一篇由种子脚本生成的示例文章。\u003C\u002Fp>",false,"2026-10-09T12:00:00.249Z",{"items":30,"nextCursor":7},[31],{"id":4,"articleId":4,"author":32,"content":36,"parentId":7,"replyCount":37,"createdAt":38},{"id":33,"username":34,"avatar":7,"bio":35},3,"AsyncAwait","热爱技术写作的开发者 #4","写得很棒！关于「SSR 与 CSR 的边界：什么时候该用服务端渲染」的实践有更多细节可以分享吗？",0,"2026-09-10T05:56:00.920Z"]