---
title: 不要将返回原始类型结果的简单表达式包裹在 useMemo 中
impact: 中低
impactDescription: 每次渲染都会产生不必要的计算开销
tags: 重新渲染, useMemo, 优化
---
## 不要将返回原始类型结果的简单表达式包裹在 useMemo 中
当表达式很简单(只包含少量逻辑或算术运算符)且结果类型为原始类型(布尔值、数字、字符串)时,不要将其包裹在 `useMemo` 中。调用 `useMemo` 以及对比 Hook 依赖项所消耗的资源,可能比表达式本身的计算开销还要大。
**错误写法:**
```tsx
function Header({ user, notifications }: Props) {
const isLoading = useMemo(() => {
return user.isLoading || notifications.isLoading
}, [user.isLoading, notifications.isLoading])
if (isLoading) return
// 返回一些标记
}
```
**正确写法:**
```tsx
function Header({ user, notifications }: Props) {
const isLoading = user.isLoading || notifications.isLoading
if (isLoading) return
// 返回一些标记
}