<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Next | 锤子前端</title><description>Now vibe coding, so learning hammer FE ?</description><link>https://channel.meo-ai.com</link><item><title>《TanStack Start 心智模型：给 Next.js 开发者的迁移指南》</title><link>https://channel.meo-ai.com/posts/667</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/667</guid><pubDate>Sun, 21 Jun 2026 09:59:34 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《TanStack Start 心智模型：给 &lt;/span&gt;&lt;mark class=&quot;highlight&quot;&gt;&lt;span class=&quot;post-title-source&quot;&gt;Next&lt;/span&gt;&lt;/mark&gt;&lt;span class=&quot;post-title-source&quot;&gt;.js 开发者的迁移指南》&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=%23TanStack_Start&quot; title=&quot;#TanStack_Start&quot;&gt;#TanStack_Start&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Next&quot; title=&quot;#Next&quot;&gt;#Next&lt;/a&gt;.js &lt;a href=&quot;/search/result?q=%23React_Router&quot; title=&quot;#React_Router&quot;&gt;#React_Router&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23TypeScript&quot; title=&quot;#TypeScript&quot;&gt;#TypeScript&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%85%A8%E6%A0%88%E6%A1%86%E6%9E%B6&quot; title=&quot;#全栈框架&quot;&gt;#全栈框架&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;文章从一位资深 &lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js 开发者的视角，系统对比了 TanStack Start 与 &lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js App Router 的核心差异。核心心智模型翻转在于：&lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js 默认服务端优先、隐式约定驱动；TanStack Start 默认同构 React、显式声明边界。作者逐一对比了路由类型系统、数据获取、服务端函数、缓存策略、渲染模式、认证防护等关键维度，指出 TanStack Start 更适合高交互 SaaS 类应用，而 &lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js 在内容型站点和成熟生态上仍有优势。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;1. 心智模型大翻转：&lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js 默认组件跑在服务端，需要显式标注 &lt;code&gt;&quot;use client&quot;&lt;/code&gt; 才能上客户端；TanStack Start 默认组件同构（服务端+客户端都能跑），只有需要纯服务端逻辑时才用 &lt;code&gt;createServerFn&lt;/code&gt; 显式声明，边界更清晰，不容易踩坑&lt;br /&gt;2. 路由类型系统碾压：&lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js 的文件路由是约定驱动，TypeScript 对参数无能为力；TanStack Router 会在构建时自动生成完全类型化的路由树，路径参数、搜索参数、loader 返回值全部类型推断，拼写错误直接编译报错&lt;br /&gt;3. 数据获取的&quot;陷阱&quot;：&lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js 的 Server Component 只在服务端执行，天然安全；TanStack Start 的 loader 是同构的——SSR 时跑在服务端，客户端导航时跑在浏览器里，所以直接写数据库查询会泄露环境变量，必须用 &lt;code&gt;createServerFn&lt;/code&gt; 包裹&lt;br /&gt;4. 缓存哲学更简单：&lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js 历史上有复杂的四层缓存模型，v16 改为 &lt;code&gt;&apos;use cache&apos;&lt;/code&gt; 显式 opt-in；TanStack Start 只有路由 loader 缓存 + 可选的 TanStack Query，没有隐式魔法，哪里缓存、哪里失效一目了然&lt;br /&gt;5. 认证防护双层设计：&lt;code&gt;beforeLoad&lt;/code&gt; 负责 UI 层面的重定向（用户体验），&lt;code&gt;createServerFn&lt;/code&gt; 中间件负责数据层面的安全校验（真正的安全边界），两层职责分离，比 &lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js 把 edge middleware 和 action 内校验混在一起的方案更不容易遗漏&lt;br /&gt;6. Remix 与 RSC 现状：TanStack Start 的 RSC 支持仍处于实验阶段，实现方式也与 &lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js 不同（更像客户端获取 Flight payload 后组装），如果生产环境重度依赖 RSC，&lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js 目前更成熟&lt;br /&gt;7. 选型建议：内容型/营销站点选 &lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js；高交互 SaaS 后台、需要强类型安全、讨厌隐式缓存魔法的团队，TanStack Start 值得认真评估&lt;br /&gt;&lt;br /&gt;URL：&lt;br /&gt;&lt;a href=&quot;https://www.adarsha.dev/blog/tanstack-mental-model-for-nextjs-developers&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://www.adarsha.dev/blog/tanstack-mental-model-for-nextjs-developers&quot;&gt;https://www.adarsha.dev/blog/tanstack-mental-model-for-nextjs-developers&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://adarsha.dev/blog/tanstack-mental-model-for-nextjs-developers&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Understand TanStack Start from a Next.js developer’s perspective: its router-first architecture, explicit server boundaries, typed routing, caching, rendering, and server functions.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;Adarsha Acharya&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;TanStack Start: A Mental Model for Next.js Developers&quot; src=&quot;/static/https://cdn4.telesco.pe/file/Ja3_PLOYCdk_ef6YOzQimki-laVzYQKPWscgPmZVkfjz7dJvyVktlBPYjr0fz-r-XAbor1EWUAJJNcyggHiG0FZZe0VUxcREOqzVZqtUI6kwB771dWmk4swUzl_Oz5TzIpz-FxNLy2vT86ybEurfETg2ReU9ZeESH6jXHKw3Dg6KNLgpxKWmJ0lfkgXKP8Biom9MzNlGHfAiKlVipcNSSmzTWh1lC-147ID8LoseQdKaMtmwxRFIeQZJrnSFR0fiEmHe0F6AmO3fO4nx3yS42vROCGF4EcbrzO6QCrIt9g84djfexf-9do1w-T1zmrPwV_yxzAOwF3OglTbp_karFA.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;TanStack Start: A Mental Model for &lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js Developers&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Understand TanStack Start from a &lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js developer’s perspective: its router-first architecture, explicit server boundaries, typed routing, caching, rendering, and server functions.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#React #Next #文章 比较了 React 19 带来的服务器优先架构（Next.js 的 App Router）和客户端优先的 TanStack Start</title><link>https://channel.meo-ai.com/posts/35</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/35</guid><pubDate>Thu, 07 Nov 2024 15:32:45 GMT</pubDate><content:encoded>&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=%23Next&quot; title=&quot;#Next&quot;&gt;#Next&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; 比较了 React 19 带来的服务器优先架构（&lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js 的 App Router）和客户端优先的 TanStack Start。React 19 的架构强化了服务器渲染，通过“use client”标记在客户端加载特定组件，以减轻客户端的负担。而 TanStack Start 仍注重客户端渲染，逐步引入服务端功能，提供更灵活的全栈架构。&lt;br /&gt; &lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js 和 TanStack Start 用于集成现代 React 功能的不同愿景的有趣想法。 TanStack Start 更加以客户为中心，且破坏性较小。&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://bobaekang.com/blog/two-ways-to-the-two-reacts/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://bobaekang.com/blog/two-ways-to-the-two-reacts/&quot;&gt;https://bobaekang.com/blog/two-ways-to-the-two-reacts/&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://bobaekang.com/blog/two-ways-to-the-two-reacts&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Next.js App Router and TanStack Start represent two distinct ways to the full-stack React&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;Bobaekang&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;Two ways to the two Reacts | bobae kang&quot; src=&quot;/static/https://cdn4.telesco.pe/file/DlgKPdlkOe-9RRFNhcpvk19qWxfOBQC_k-7bYPzTV4pVJRot9vBY3pwvJTgglvgYT35l7QABjciNOopRrdHANkFlFPNzASIBiE5MkxU0zkB6D6KrOVyV26eh_tVCusqUsnW4E9MUUj15SqFIL7XSvi1e7ovMDpwi0RZBt9JvZEOumrbFXFwxEfI-_Xknr0HYb83MgdnlSs0BZETqwmJniALFJoOo1R99QDbU5fGJVg5SvHrIo8bvy60GS1LwCX-1MuOTQmF9F2TdFlmlx2mrO_TWY3Kgn4izR-qnpPlTCjHFY9BeWdigeJ8ks9OJLSpIj9faQW9DvllzFpC3FSElZQ.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;Two ways to the two Reacts | bobae kang&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;&lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js App Router and TanStack Start represent two distinct ways to the full-stack React&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#Next #React #文章 在Next.js App Router中实现高级搜索参数过滤的方法</title><link>https://channel.meo-ai.com/posts/34</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/34</guid><pubDate>Thu, 07 Nov 2024 15:24:38 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23Next&quot; title=&quot;#Next&quot;&gt;#Next&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=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; 在Next.js App Router中实现高级搜索参数过滤的方法。介绍了如何使用React 19特性，如useOptimistic()，以及如何通过React Context和nuqs库来协调搜索和过滤状态，以提供即时用户反馈并避免多个过滤器相互覆盖的问题。&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://aurorascharff.no/posts/managing-advanced-search-param-filtering-next-app-router/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://aurorascharff.no/posts/managing-advanced-search-param-filtering-next-app-router/&quot;&gt;https://aurorascharff.no/posts/managing-advanced-search-param-filtering-next-app-router/&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://aurorascharff.no/posts/managing-advanced-search-param-filtering-next-app-router&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Learn how to implement advanced search param filtering in the Next.js App Router, utilizing React 19 features like useOptimistic and the library nuqs.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;aurorascharff.no&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;Managing Advanced Search Param Filtering in the Next.js App Router | Aurora Scharff&quot; src=&quot;/static/https://cdn4.telesco.pe/file/Uzz6hJu8o03RpINruGUUXVvBrCm8x0oFimBD-GVMiDCYvYU9X_Dt1sAGILbvHmBHlyCm0MYrVbbLiLHhIqs_Wxg08RhzjxCzfbqxR-UfCUncDT0fjLbgm5ousYuFNkjvOOnW6l7p8TBIk6FbSr2C3UCu769EzZ0kcYAGSgSAGzCaBlRTu2gizXQFTKGe0ctKKFPkj9q6qSmjDaOY4IyMKr2iq05P2JX2_Y09PYDbGX9XErwoy88L3ClcHshO-dxQGSZeUAwnG9VzaOyVF3OrroeRRZDleoG_Df2Hs0IKettAo7bf_EQna_PpjYEjW3Bcac45esKMiVGnL6pm4KCbyw.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;Managing Advanced Search Param Filtering in the &lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js App Router | Aurora Scharff&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Learn how to implement advanced search param filtering in the &lt;mark class=&quot;highlight&quot;&gt;Next&lt;/mark&gt;.js App Router, utilizing React 19 features like useOptimistic and the library nuqs.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item></channel></rss>