<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>React_Server_Components | 锤子前端</title><description>Now vibe coding, so learning hammer FE ?</description><link>https://channel.meo-ai.com</link><item><title>《为什么我放弃Next.js和RSC，回归传统SPA与独立后端》</title><link>https://channel.meo-ai.com/posts/654</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/654</guid><pubDate>Mon, 01 Jun 2026 00:06:54 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《为什么我放弃Next.js和RSC，回归传统SPA与独立后端》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF&quot; title=&quot;#前端&quot;&gt;#前端&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Web%E5%BC%80%E5%8F%91&quot; title=&quot;#Web开发&quot;&gt;#Web开发&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23React&quot; title=&quot;#React&quot;&gt;#React&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23NextJS&quot; title=&quot;#NextJS&quot;&gt;#NextJS&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23React_Server_Components&quot; title=&quot;#React_Server_Components&quot;&gt;#React_Server_Components&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23SPA&quot; title=&quot;#SPA&quot;&gt;#SPA&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1&quot; title=&quot;#架构设计&quot;&gt;#架构设计&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%AE%89%E5%85%A8&quot; title=&quot;#安全&quot;&gt;#安全&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23TanStack&quot; title=&quot;#TanStack&quot;&gt;#TanStack&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Hono&quot; title=&quot;#Hono&quot;&gt;#Hono&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;&lt;br /&gt;作者回顾了自己从Next.js忠实用户到拥抱App Router/RSC，最终回归传统SPA+独立后端的完整历程。文章深入分析了RSC架构带来的心智负担、序列化开销和安全风险，结合2025-2026年多起严重CVE漏洞，论证了将渲染框架与安全边界解耦的必要性，并分享了当前基于React Router+Vite+Hono的简洁技术栈。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;&lt;br /&gt;1. &lt;b&gt;Next.js的黄金时代&lt;/b&gt;：Pages Router时期心智模型清晰，服务端/客户端边界一目了然，文件路由简单易懂，部署零成本&lt;br /&gt;2. &lt;b&gt;App Router带来的混乱&lt;/b&gt;：&lt;mark class=&quot;highlight&quot;&gt;Server&lt;/mark&gt;/Client Component区分成为负担，&quot;use client&quot;指令传染性强，开发/构建/生产环境缓存行为不一致，服务端客户端边界变得不可见&lt;br /&gt;3. &lt;b&gt;安全漏洞敲响警钟&lt;/b&gt;：2025年CVE-2025-29927中间件绕过(CVSS 9.1)、2025年底RSC核心包10分满分漏洞CVE-2025-55182、2026年初多起Server Function DoS漏洞，攻击面集中在服务端渲染和反序列化环节&lt;br /&gt;4. &lt;b&gt;TanStack并非避风港&lt;/b&gt;：2026年5月TanStack遭遇供应链攻击，42个包被投毒，说明换框架不能免疫风险，减少依赖面才是关键&lt;br /&gt;5. &lt;b&gt;序列化是根本原因&lt;/b&gt;：RSC的&quot;无缝&quot;本质是分布式系统的序列化问题，函数、类实例、错误栈都无法透明穿越边界，反序列化不可信输入成为高危攻击面&lt;br /&gt;6. &lt;b&gt;当前架构选择&lt;/b&gt;：&lt;mark class=&quot;highlight&quot;&gt;React&lt;/mark&gt; Router框架模式+Vite纯SPA（仅营销页预渲染）+ Hono独立后端，API通过显式HTTP调用，无RSC负载，无服务端序列化&lt;br /&gt;7. &lt;b&gt;安全设计原则&lt;/b&gt;：认证授权在API层强制执行，前端中间件只做UX跳转，CORS/CSRF/验证码/限流全部在可控的后端实现，与渲染框架彻底解耦&lt;br /&gt;8. &lt;b&gt;核心收获&lt;/b&gt;：架构清晰可指认、无序列化税、前端攻击面趋近于零、后端语言自由选型、依赖更少爆炸半径更小——&quot;无聊&quot;在软件工程里是赞美&lt;br /&gt;&lt;br /&gt;URL：&lt;a href=&quot;https://dev.to/zulikram/why-i-walked-back-from-nextjs-and-rsc-to-a-plain-spa-and-a-separate-backend-4k8p&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://dev.to/zulikram/why-i-walked-back-from-nextjs-and-rsc-to-a-plain-spa-and-a-separate-backend-4k8p&quot;&gt;https://dev.to/zulikram/why-i-walked-back-from-nextjs-and-rsc-to-a-plain-spa-and-a-separate-backend-4k8p&lt;/a&gt;</content:encoded></item><item><title>《TanStack中的React服务端组件》</title><link>https://channel.meo-ai.com/posts/636</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/636</guid><pubDate>Wed, 20 May 2026 23:43:43 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《TanStack中的React服务端组件》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF&quot; title=&quot;#前端&quot;&gt;#前端&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23React_Server_Components&quot; title=&quot;#React_Server_Components&quot;&gt;#React_Server_Components&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23TanStack_Start&quot; title=&quot;#TanStack_Start&quot;&gt;#TanStack_Start&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23NextJs&quot; title=&quot;#NextJs&quot;&gt;#NextJs&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Bundle_Optimization&quot; title=&quot;#Bundle_Optimization&quot;&gt;#Bundle_Optimization&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;TanStack Start实现了与Next.js截然不同的React服务端组件方案，通过显式API将组件渲染保留在服务端，避免将繁重代码发送至客户端。文章以应用外壳为例，展示RSC如何将客户端Bundle从308KB缩减至203KB，并说明其适合大型非交互式组件树的场景，同时澄清RSC并非数据加载或SSR的替代品，而是针对性的性能优化工具。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;1. RSC是只在服务端运行的React组件，可以直接在组件里写await查数据，而且组件代码不会发送到浏览器，不用担心数据库密码暴露给前端&lt;br /&gt;2. TanStack实现RSC的方式特别直白，通过renderServerComponent这类API就能显式声明，作者认为比Next.js的实现更好懂&lt;br /&gt;3. 别误会，RSC不是用来替代数据加载或SSR的，TanStack的loader和原有的服务端渲染已经做得很好了，RSC真正的价值是帮浏览器&quot;减肥&quot;&lt;br /&gt;4. 文章举了个生动的例子：故意引入整个图标库来模拟大型组件树，结果RSC把客户端JS从308KB砍到了203KB，省了不少流量&lt;br /&gt;5. 更妙的是RSC还能接收客户端组件当&quot;插槽&quot;传进来，配合Suspense实现流式渲染，让页面边加载边呈现，体验很丝滑&lt;br /&gt;6. 不过作者也提醒，RSC不是银弹，如果你的组件树不大、依赖不多，用它带来的收益可能微乎其微，得看场景取舍&lt;br /&gt;&lt;br /&gt;URL：&lt;a href=&quot;https://frontendmasters.com/blog/react-server-components-in-tanstack/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://frontendmasters.com/blog/react-server-components-in-tanstack/&quot;&gt;https://frontendmasters.com/blog/react-server-components-in-tanstack/&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://frontendmasters.com/blog/react-server-components-in-tanstack&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;This post is about React Server Components (or RSC) in TanStack Start. The implementation is radically different, and in my opinion, better than the RSC implementation you’ve likely seen in Next.js.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;Frontend Masters&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;React Server Components in TanStack&quot; src=&quot;/static/https://cdn4.telesco.pe/file/m1SWDG4eNI3zo5DWGvvpwHAqaR5dJaqpFfkb0QMP3mx8b2aWSytphloQUUHun9jb9M8pwvQi_VVMtdXB-8rKX3Z1G11jx6HI0lso3dTK8uHisnfWhOjTsxEuMZFONZWlLgQKCln5satRGo2QmOupH8zKf1tJjZmRajcGNGJ5RrVBnyR8dWxa2HqYsRyWz70Bcyo7zquRetf7HTnpF7Yqx3MEmzw2zUnMlhn2m8Q-08cnNeKJ9tMX7GE9eFcinvzKIY9K4mTyr1qVMMracH5h0DOj_RTcJfrvehT8vfTJGR8KUgkI7E-A2qG3k1U-Ur3e5bq0nHdVvIreHFmwymf85A.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;&lt;mark class=&quot;highlight&quot;&gt;React&lt;/mark&gt; &lt;mark class=&quot;highlight&quot;&gt;Server&lt;/mark&gt; &lt;mark class=&quot;highlight&quot;&gt;Components&lt;/mark&gt; in TanStack&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;This post is about &lt;mark class=&quot;highlight&quot;&gt;React&lt;/mark&gt; &lt;mark class=&quot;highlight&quot;&gt;Server&lt;/mark&gt; &lt;mark class=&quot;highlight&quot;&gt;Components&lt;/mark&gt; (or RSC) in TanStack Start. The implementation is radically different, and in my opinion, better than the RSC implementation you’ve likely seen in Next.js.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#文章 #React Server Components 比较不错的文章，《服务器组件的心智模型》</title><link>https://channel.meo-ai.com/posts/170</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/170</guid><pubDate>Fri, 10 Jan 2025 10:19:06 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23React&quot; title=&quot;#React&quot;&gt;#React&lt;/a&gt; &lt;mark class=&quot;highlight&quot;&gt;Server&lt;/mark&gt; &lt;mark class=&quot;highlight&quot;&gt;Components&lt;/mark&gt; 比较不错的文章，《服务器组件的心智模型》&lt;br /&gt;&lt;br /&gt;- 链接：&lt;a href=&quot;https://saewitz.com/the-mental-model-of-server-components&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://saewitz.com/the-mental-model-of-server-components&quot;&gt;https://saewitz.com/the-mental-model-of-server-components&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://saewitz.com/the-mental-model-of-server-components&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;
  &lt;i class=&quot;link_preview_right_image&quot; style=&quot;background-image:url(&apos;https://cdn4.telesco.pe/file/s87o3sPk0HRb1sLANaVDmxDZkNa2F230zDaDDn4oFyQXYxIhBHSxRvyB-3d9M2uy-pm3KoA6Px5Ez67CNSZUcbeikW4OklTnjDEy3orN6vifO16iMPF_ljDss8kTrEP3QgAS-qhgbTIJ8e9n1x7-cPTnDZ5W1SSVsSsa020LZfA-S8jjr95YgQb8Pi6trFqmKL_nAT5UwqJtwzkItW74zLxKKPRkMxQpv2RKz9jkbxMkc5nLZF2rr3jEXaKCEoo91NVSgm4CVll7mzkMUkQncv85Qe80ksIhBqYb5AKsSDeALmMFgvzXyXuSAA7mTbRDOK1dW9_5gCbtUcqrUF6nNA.jpg&apos;)&quot;&gt;&lt;/i&gt;
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;Saewitz&lt;/div&gt;
  
  &lt;div class=&quot;link_preview_title&quot;&gt;The Mental Model of &lt;mark class=&quot;highlight&quot;&gt;Server&lt;/mark&gt; &lt;mark class=&quot;highlight&quot;&gt;Components&lt;/mark&gt; | Daniel Saewitz&lt;/div&gt;
  
&lt;/a&gt;</content:encoded></item></channel></rss>