Это означает, что при каждом вызове хука эффекта создается новая функция.
Итак, создается новый массив [unRead]
. Это не проблема ни для массива, ни для функции. Как и другие объекты, функции в современных JS-движках создаются очень быстро. Влияние вновь созданной функции на производительность незначительно.
При повторном использовании функции могут быть некоторые улучшения производительности, в зависимости от движка:
// outside a component
const effect = () => {...};
...
// inside a component
useEffect(effect);
vs
useEffect(() => {...});
Но поскольку эффекты часто полагаются на объемлющую область (например, состояние useState
), повторное использование функций эффектов может быть нецелесообразным.
Что касается функций стрелок, разницы в производительности между стрелочными и обычными функциями не ожидается, хотя у стрелок могут быть проблемы с производительностью в некоторых движках (например, в старых версиях Firefox).
Влияет ли это на производительность, учитывая тот факт, что компонент может иметь много обработчиков эффектов?
Если функция компонента вызывается достаточно часто, чтобы вызвать проблемы с производительностью, это и есть настоящая проблема.
person
Estus Flask
schedule
30.11.2018