perf(MarketDataView): 优化数据映射性能和请求管理
- useMarketData: 使用 Map 替代 findIndex,O(n*m) → O(n+m) 性能优化 - useMarketData: 修复 React StrictMode 下请求被意外取消的问题 - config.ts: 添加 CompanyOverview 和 DynamicTracking 的骨架屏 fallback 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,8 @@
|
||||
import React, { useState, useEffect, ReactNode, useMemo, useCallback, memo } from 'react';
|
||||
import {
|
||||
Box,
|
||||
Card,
|
||||
CardBody,
|
||||
Container,
|
||||
VStack,
|
||||
useDisclosure,
|
||||
@@ -87,6 +89,14 @@ const MarketDataView: React.FC<MarketDataViewProps> = ({ stockCode: propStockCod
|
||||
}
|
||||
}, [propStockCode, stockCode]);
|
||||
|
||||
// 首次渲染时加载默认 Tab(融资融券)的数据
|
||||
useEffect(() => {
|
||||
// 默认 Tab 是融资融券(index 0)
|
||||
if (activeTab === 0) {
|
||||
loadDataByType('funding');
|
||||
}
|
||||
}, [loadDataByType, activeTab]);
|
||||
|
||||
// 处理图表点击事件
|
||||
const handleChartClick = useCallback(
|
||||
(params: { seriesName?: string; data?: [number, number] }) => {
|
||||
@@ -146,15 +156,19 @@ const MarketDataView: React.FC<MarketDataViewProps> = ({ stockCode: propStockCod
|
||||
/>
|
||||
|
||||
{/* 主要内容区域 - Tab */}
|
||||
<SubTabContainer
|
||||
tabs={tabConfigs}
|
||||
componentProps={componentProps}
|
||||
themePreset="blackGold"
|
||||
index={activeTab}
|
||||
onTabChange={handleTabChange}
|
||||
isLazy
|
||||
size="sm"
|
||||
/>
|
||||
<Card bg="gray.900" shadow="md" border="1px solid" borderColor="rgba(212, 175, 55, 0.3)">
|
||||
<CardBody p={0}>
|
||||
<SubTabContainer
|
||||
tabs={tabConfigs}
|
||||
componentProps={componentProps}
|
||||
themePreset="blackGold"
|
||||
index={activeTab}
|
||||
onTabChange={handleTabChange}
|
||||
isLazy
|
||||
size="sm"
|
||||
/>
|
||||
</CardBody>
|
||||
</Card>
|
||||
</VStack>
|
||||
</Container>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user