perf(DeepAnalysis): 优化初始加载,只请求 comprehensive 接口
- 移除初始加载时的 industryRank 请求 - 只加载默认 Tab(战略分析)需要的核心数据 - 其他数据按需懒加载 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
// src/views/Company/components/CompanyOverview/components/shareholder/ConcentrationCard.tsx
|
||||
// 股权集中度卡片组件
|
||||
|
||||
import React, { useMemo, useRef, useEffect } from "react";
|
||||
import React, { useMemo, useRef, useEffect, memo } from "react";
|
||||
import {
|
||||
Box,
|
||||
VStack,
|
||||
@@ -233,4 +233,4 @@ const ConcentrationCard: React.FC<ConcentrationCardProps> = ({ concentration = [
|
||||
);
|
||||
};
|
||||
|
||||
export default ConcentrationCard;
|
||||
export default memo(ConcentrationCard);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// src/views/Company/components/CompanyOverview/components/shareholder/ShareholdersTable.tsx
|
||||
// 股东表格组件(合并版)- 支持十大股东和十大流通股东
|
||||
|
||||
import React, { useMemo } from "react";
|
||||
import React, { useMemo, memo } from "react";
|
||||
import { Box, HStack, Heading, Badge, Icon, useBreakpointValue } from "@chakra-ui/react";
|
||||
import { Table, Tag, Tooltip, ConfigProvider } from "antd";
|
||||
import type { ColumnsType } from "antd/es/table";
|
||||
@@ -225,4 +225,4 @@ const ShareholdersTable: React.FC<ShareholdersTableProps> = ({
|
||||
);
|
||||
};
|
||||
|
||||
export default ShareholdersTable;
|
||||
export default memo(ShareholdersTable);
|
||||
|
||||
@@ -189,9 +189,8 @@ const DeepAnalysis = ({ stockCode }) => {
|
||||
|
||||
// 重置为默认 Tab 并加载数据
|
||||
setActiveTab("strategy");
|
||||
// 加载默认 Tab 的数据(战略分析需要 comprehensive 和 industryRank)
|
||||
// 只加载默认 Tab 的核心数据(comprehensive),其他数据按需加载
|
||||
loadApiData("comprehensive");
|
||||
loadApiData("industryRank");
|
||||
}
|
||||
}, [stockCode, loadApiData]);
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// 指标卡片组件 - FUI 科幻风格
|
||||
import React from 'react';
|
||||
import React, { memo } from 'react';
|
||||
import { Box, VStack } from '@chakra-ui/react';
|
||||
import { DarkGoldCard, CardTitle, MetricValue } from './atoms';
|
||||
import { darkGoldTheme } from '../../constants';
|
||||
@@ -125,4 +125,4 @@ const MetricCard: React.FC<MetricCardProps> = ({
|
||||
);
|
||||
};
|
||||
|
||||
export default MetricCard;
|
||||
export default memo(MetricCard);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// 股票信息卡片组件(4列布局版本)- FUI 科幻风格
|
||||
import React from 'react';
|
||||
import React, { memo } from 'react';
|
||||
import { Box, HStack, VStack, Text, Icon, Badge } from '@chakra-ui/react';
|
||||
import { TrendingUp, TrendingDown, Activity } from 'lucide-react';
|
||||
import { DarkGoldCard } from './atoms';
|
||||
@@ -206,4 +206,4 @@ const StockHeaderCard: React.FC<StockHeaderCardProps> = ({
|
||||
);
|
||||
};
|
||||
|
||||
export default StockHeaderCard;
|
||||
export default memo(StockHeaderCard);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// StockSummaryCard 主组件
|
||||
import React from 'react';
|
||||
import React, { memo } from 'react';
|
||||
import { SimpleGrid, HStack, Text, VStack } from '@chakra-ui/react';
|
||||
import { Flame, Coins, DollarSign, Shield } from 'lucide-react';
|
||||
import StockHeaderCard from './StockHeaderCard';
|
||||
@@ -111,4 +111,4 @@ const StockSummaryCard: React.FC<StockSummaryCardProps> = ({ summary }) => {
|
||||
);
|
||||
};
|
||||
|
||||
export default StockSummaryCard;
|
||||
export default memo(StockSummaryCard);
|
||||
|
||||
Reference in New Issue
Block a user