组件架构

Litopia 前端组件体系——shadcn/ui + Radix + 功能组件分层

组件分层

层级目录说明
UI 基元src/components/ui/shadcn/ui 生成组件——Button、Card、Dialog、Sheet 等
功能组件src/components/按功能分组的业务组件——layout、editor、article、ui
页面src/pages/路由页面——120+ 路由,全部 lazy-loaded

技术栈

  • 核心:React 18 + Vite + SWC
  • UI:shadcn/ui (Radix primitives + Tailwind CSS)
  • 状态管理:React Context (Auth 等全局状态) + TanStack Query (服务端状态)
  • 路由:React Router v6 (lazy-loaded routes)
  • 类型:class-variance-authority (CVA) 管理 UI 组件 variants

关键设计决策

  • shadcn/ui 组件不直接修改——如需自定义,创建包装组件或传递 className
  • 业务逻辑提取到 hooks——~86 个自定义 hooks 位于 src/hooks/
  • 代码分割——所有路由页面 lazy-loaded (React.lazy + Suspense)