Search: #Next

  1. 《TanStack Start 心智模型:给 Next.js 开发者的迁移指南》

    《TanStack Start 心智模型:给 Next.js 开发者的迁移指南》

    标签:#前端 #TanStack_Start #Next.js #React_Router #TypeScript #全栈框架

    总结:
    文章从一位资深 Next.js 开发者的视角,系统对比了 TanStack Start 与 Next.js App Router 的核心差异。核心心智模型翻转在于:Next.js 默认服务端优先、隐式约定驱动;TanStack Start 默认同构 React、显式声明边界。作者逐一对比了路由类型系统、数据获取、服务端函数、缓存策略、渲染模式、认证防护等关键维度,指出 TanStack Start 更适合高交互 SaaS 类应用,而 Next.js 在内容型站点和成熟生态上仍有优势。

    文章要点:
    1. 心智模型大翻转:Next.js 默认组件跑在服务端,需要显式标注 "use client" 才能上客户端;TanStack Start 默认组件同构(服务端+客户端都能跑),只有需要纯服务端逻辑时才用 createServerFn 显式声明,边界更清晰,不容易踩坑
    2. 路由类型系统碾压:Next.js 的文件路由是约定驱动,TypeScript 对参数无能为力;TanStack Router 会在构建时自动生成完全类型化的路由树,路径参数、搜索参数、loader 返回值全部类型推断,拼写错误直接编译报错
    3. 数据获取的"陷阱":Next.js 的 Server Component 只在服务端执行,天然安全;TanStack Start 的 loader 是同构的——SSR 时跑在服务端,客户端导航时跑在浏览器里,所以直接写数据库查询会泄露环境变量,必须用 createServerFn 包裹
    4. 缓存哲学更简单:Next.js 历史上有复杂的四层缓存模型,v16 改为 'use cache' 显式 opt-in;TanStack Start 只有路由 loader 缓存 + 可选的 TanStack Query,没有隐式魔法,哪里缓存、哪里失效一目了然
    5. 认证防护双层设计:beforeLoad 负责 UI 层面的重定向(用户体验),createServerFn 中间件负责数据层面的安全校验(真正的安全边界),两层职责分离,比 Next.js 把 edge middleware 和 action 内校验混在一起的方案更不容易遗漏
    6. Remix 与 RSC 现状:TanStack Start 的 RSC 支持仍处于实验阶段,实现方式也与 Next.js 不同(更像客户端获取 Flight payload 后组装),如果生产环境重度依赖 RSC,Next.js 目前更成熟
    7. 选型建议:内容型/营销站点选 Next.js;高交互 SaaS 后台、需要强类型安全、讨厌隐式缓存魔法的团队,TanStack Start 值得认真评估

    URL:
    https://www.adarsha.dev/blog/tanstack-mental-model-for-nextjs-developers TanStack Start: A Mental Model for Next.js Developers

  2. #React #Next #文章 比较了 React 19 带来的服务器优先架构(Next.js 的 App Router)和客户端优先的 TanStack Start

    #React #Next #文章 比较了 React 19 带来的服务器优先架构(Next.js 的 App Router)和客户端优先的 TanStack Start。React 19 的架构强化了服务器渲染,通过“use client”标记在客户端加载特定组件,以减轻客户端的负担。而 TanStack Start 仍注重客户端渲染,逐步引入服务端功能,提供更灵活的全栈架构。
    Next.js 和 TanStack Start 用于集成现代 React 功能的不同愿景的有趣想法。 TanStack Start 更加以客户为中心,且破坏性较小。

    https://bobaekang.com/blog/two-ways-to-the-two-reacts/ Two ways to the two Reacts | bobae kang

  3. #Next #React #文章 在Next.js App Router中实现高级搜索参数过滤的方法

    #Next #React #文章 在Next.js App Router中实现高级搜索参数过滤的方法。介绍了如何使用React 19特性,如useOptimistic(),以及如何通过React Context和nuqs库来协调搜索和过滤状态,以提供即时用户反馈并避免多个过滤器相互覆盖的问题。

    https://aurorascharff.no/posts/managing-advanced-search-param-filtering-next-app-router/ Managing Advanced Search Param Filtering in the Next.js App Router | Aurora Scharff