Files
Novault-Frontend-web/src/router

前端路由配置

概述

本应用使用 react-router-dom v7 进行路由管理,采用 createBrowserRouter API 配置路由。

路由结构

/                       -> 重定向到 /home
├── /home              -> 首页(快速记账入口)
├── /transactions      -> 交易列表页
├── /accounts          -> 账户管理页
├── /budget            -> 预算管理页
├── /reports           -> 报表分析页
├── /settings          -> 设置页
└── /*                 -> 404 重定向到 /home

技术实现

路由配置文件

位置:src/router/index.tsx

使用 createBrowserRouter 创建路由实例,所有路由都嵌套在 Layout 组件下,通过 <Outlet /> 渲染子路由。

Layout 组件

位置:src/components/common/Layout/Layout.tsx

Layout 组件提供:

  • 顶部导航栏(应用标题 + 主题切换按钮)
  • 底部导航栏(移动端)/ 侧边导航栏(桌面端)
  • 主内容区域(通过 <Outlet /> 渲染当前路由页面)

导航组件

导航使用 NavLink 组件实现,支持:

  • 自动高亮当前激活路由(通过 isActive 属性)
  • 响应式布局:
    • 移动端:底部导航栏,图标 + 文字垂直排列
    • 桌面端:左侧边栏,图标 + 文字水平排列

页面组件

路由 组件 功能 状态
/home Home 首页,展示账户概览和快速记账入口 已实现
/transactions Transactions 交易列表,支持筛选和搜索 已实现
/accounts Accounts 账户管理,创建/编辑账户和转账 已实现
/budget Budget 预算管理和存钱罐 🚧 待完善
/reports Reports 统计报表和数据可视化 🚧 待完善
/settings Settings 应用设置和数据管理 🚧 待完善

使用方式

在 App.tsx 中使用

import { RouterProvider } from 'react-router-dom';
import { router } from './router';

function App() {
  return <RouterProvider router={router} />;
}

在组件中导航

import { useNavigate, Link } from 'react-router-dom';

// 使用 Link 组件
<Link to="/transactions">查看交易</Link>

// 使用 useNavigate hook
const navigate = useNavigate();
navigate('/accounts');

响应式设计

移动端(< 768px

  • 底部固定导航栏
  • 图标和文字垂直排列
  • 主内容区域底部留出导航栏空间4rem

桌面端(≥ 768px

  • 左侧固定侧边栏(宽度 200px
  • 图标和文字水平排列
  • 主内容区域左侧留出侧边栏空间

主题支持

导航组件完全支持深色/浅色主题切换,使用 CSS 变量:

  • --color-bg: 背景色
  • --color-bg-secondary: 次要背景色
  • --color-text: 主文字颜色
  • --color-text-secondary: 次要文字颜色
  • --color-primary: 主题色(用于激活状态)

验证需求

需求 8.1: 提供快速记账入口(首页) 需求 8.2: 2秒内完成加载并展示主界面 需求 8.4: 支持响应式布局适配Web端和移动端