跳到主要内容
版本:Current

系统架构

架构概览​

CSSA-Website 采用 纯前端 SPA 架构,运行于浏览器,不依赖后端服务。

分层设计​

层级职责对应代码
入口层挂载 React 根、加载 i18nindex.html、src/main.jsx
路由层locale 前缀、页面映射、旧路径重定向src/App.jsx
布局层首页 Header、Navbar、Footer、Outletsrc/components/layout/MainLayout.jsx
页面层各业务页面src/components/Pages/
UI 层Hero、内容块、语言切换等src/components/ui/、LanguageSwitcher.jsx
i18n 层初始化与翻译资源src/i18n/index.js、src/locales/
工具层locale 路径、LocalizedLink、cnsrc/lib/、src/hooks/

路由架构​

  • 所有正式页面挂在 /:locale 下,由 LocaleLayout 校验语言后渲染 MainLayout。
  • MainLayout 根据是否首页决定是否渲染 Header,再用 <Outlet /> 渲染子路由。
  • 无 locale 的旧路径(/Activity/*、/Resources/* 等)由 LegacyRedirect 加上 /zh 前缀。
  • 未知 locale 或根路径 * 最终回到 /zh。

路径对照表见 Route Map。

数据流​

  • 无全局业务状态:不使用 Redux。i18n 语言由 URL locale 驱动(MainLayout 调用 i18n.changeLanguage)。
  • 本地状态:组件内 useState / useEffect / useRef;导航高亮用 useLocation。
  • 数据来源:翻译 JSON、页面旁 JSON、组件内常量、public/ 图片、外部 URL。

部署形态​

  • npm run build 生成静态文件到 dist/
  • 可部署至 Cloudflare Pages 等静态托管
  • 必须配置 SPA 回退:未匹配路径返回 index.html,否则刷新 /zh/Activity 会 404