繁体   English   中英

在 React 中记忆大型数组操作有意义吗?

[英]Does it make sense to memoize large array operations in React?

假设我有一个组件:

export const MyComponent = ({largeArray}) => {
    const arrayINeed = largeArray.sort()
}

据我了解,每次MyComponent重新渲染时都会调用largeArray.sort() ,如果largeArray很大,那不会引起某种程度的性能问题吗?

在这种情况下记忆这样的结果会更好吗?:

export const MyComponent = ({largeArray}) => {
    const sortedArray = useMemo(() => largeArray.sort(), [largeArray])
}

是的,但更重要的是,您正在通过调用其sort方法来改变传入 props 的数组。 相反,将数组展开成一个新数组并对新数组进行排序:

import {useMemo} from 'react';

export const MyComponent = ({largeArray}) => {
  const sortedArray = useMemo(() => [...largeArray].sort(), [largeArray]);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM