Jak*_*ers 0 javascript reactjs
假设我有一个组件:
export const MyComponent = ({largeArray}) => {
const arrayINeed = largeArray.sort()
}
Run Code Online (Sandbox Code Playgroud)
据我了解,每次重新渲染largeArray.sort()时都会被调用,如果很大,这不会引起一定程度的性能问题吗?MyComponentlargeArray
在这种情况下,像这样记住结果是否更好?:
export const MyComponent = ({largeArray}) => {
const sortedArray = useMemo(() => largeArray.sort(), [largeArray])
}
Run Code Online (Sandbox Code Playgroud)
是的。同样重要的是要认识到您正在通过调用其方法来改变传入 props 的数组sort。相反,将数组展开到一个新数组中并对新数组进行排序:
import {useMemo} from 'react';
export const MyComponent = ({largeArray}) => {
const sortedArray = useMemo(() => [...largeArray].sort(), [largeArray]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
206 次 |
| 最近记录: |