Как использование date.now () внутри Usememo предотвращает оптимизацию?Javascript

Форум по Javascript
Ответить
Anonymous
 Как использование date.now () внутри Usememo предотвращает оптимизацию?

Сообщение Anonymous »

Мой главный вопрос: я хочу понять, почему добавление date.now () внутри Usememo, кажется, нарушает оптимизацию. Насколько я знаю, компонент React, обернутый React.memo, только повторно использует рестораны, если его реквизит изменяется, поэтому в этом случае он должен повторно рендеринг только при изменении элементов или onitemclick. И когда элементы изменятся, USEMEMO в любом случае будет перекомплектовать обработки, потому что ссылка на массив отличается. Это кажется простым вопросом, но я изо всех сил пытался полностью понять это в течение нескольких дней. < /P>

Код: Выделить всё

const ExpensiveComponent = React.memo(({ items, onItemClick }) => {
const processedItems = useMemo(() => {
return items.map((item) => ({
...item,
processed: true,
timestamp: Date.now(),
}));
}, [items]);
return (

{" "}
{processedItems.map((item) => (
 onItemClick(item)}>
{item.name}

))}{" "}

);
});

Я попробовал регистрацию с и без даты.now (), и выходы казались практически одинаковыми, за исключением того, что временные метки отсутствуют, когда они не включены, что является ожидаемым результатом.

Подробнее здесь: https://stackoverflow.com/questions/797 ... imizations
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»