perf(app): 添加登录状态检查并优化性能
- 在多个页面添加 isLoggedIn 检查,防止未登录时进行不必要的数据获取 - 使用 React.memo 和 useMemo 优化个人页面徽章渲染性能 - 为 badges API 添加节流机制,避免频繁请求 - 优化图片缓存策略和字符串处理 - 移除调试日志并改进推送通知的认证检查
This commit is contained in:
@@ -100,6 +100,8 @@ export function NutritionRadarCard({
|
||||
const [currentMealType] = useState<'breakfast' | 'lunch' | 'dinner' | 'snack'>('breakfast');
|
||||
const [loading, setLoading] = useState(false);
|
||||
|
||||
const { isLoggedIn } = useAuthGuard()
|
||||
|
||||
const { pushIfAuthedElseLogin } = useAuthGuard();
|
||||
const dispatch = useAppDispatch();
|
||||
|
||||
@@ -121,10 +123,11 @@ export function NutritionRadarCard({
|
||||
|
||||
try {
|
||||
setLoading(true);
|
||||
await Promise.all([
|
||||
dispatch(fetchDailyNutritionData(targetDate)).unwrap(),
|
||||
dispatch(fetchDailyBasalMetabolism(targetDate)).unwrap(),
|
||||
]);
|
||||
|
||||
if (isLoggedIn) {
|
||||
await dispatch(fetchDailyNutritionData(targetDate)).unwrap()
|
||||
}
|
||||
await dispatch(fetchDailyBasalMetabolism(targetDate)).unwrap()
|
||||
} catch (error) {
|
||||
console.error('NutritionRadarCard: Failed to get nutrition card data:', error);
|
||||
} finally {
|
||||
@@ -133,7 +136,7 @@ export function NutritionRadarCard({
|
||||
};
|
||||
|
||||
loadNutritionCardData();
|
||||
}, [selectedDate, dispatch]);
|
||||
}, [selectedDate, dispatch, isLoggedIn]);
|
||||
|
||||
const nutritionStats = useMemo(() => {
|
||||
return [
|
||||
|
||||
Reference in New Issue
Block a user