// src/views/Company/components/CompanyOverview/index.tsx // 公司概览 - 主组件(组合层) // 懒加载优化:只加载头部卡片数据,BasicInfoTab 内部懒加载各 Tab 数据 import React from "react"; import { VStack, Spinner, Center, Text } from "@chakra-ui/react"; import { useBasicInfo } from "./hooks/useBasicInfo"; import CompanyHeaderCard from "./CompanyHeaderCard"; import type { CompanyOverviewProps } from "./types"; // 子组件(暂保持 JS) import BasicInfoTab from "./BasicInfoTab"; /** * 公司概览组件 * * 功能: * - 显示公司头部信息卡片(useBasicInfo) * - 显示基本信息 Tab(内部懒加载各子 Tab 数据) * * 懒加载策略: * - 主组件只加载 basicInfo(1 个 API) * - BasicInfoTab 内部根据 Tab 切换懒加载其他数据 */ const CompanyOverview: React.FC = ({ stockCode }) => { const { basicInfo, loading, error } = useBasicInfo(stockCode); // 加载状态 if (loading && !basicInfo) { return (
正在加载公司概览数据...
); } // 错误状态 if (error && !basicInfo) { return (
{error}
); } return ( {/* 公司头部信息卡片 */} {basicInfo && } {/* 基本信息内容 - 传入 stockCode,内部懒加载各 Tab 数据 */} ); }; export default CompanyOverview;