Когда не использовать useMemo?

Я использую useMemo слишком много в моем Functional Components, и я беспокоюсь об этом, будет ли полезно использовать его в нашем приложении?

Почему я так часто им пользуюсь?

У меня слишком много Components которые их не нужно перерисовывать, за исключением особых обстоятельств, и поэтому я избегаю их повторного рендеринга.

Код:

const App = props => {


 const Comp1 = useMemo(()=> <Component1 {...props} a={a} />, [a]);
 const Comp2 = useMemo(()=> <Component2 {...props} b={b} />, [b]);
 const Comp3 = useMemo(()=> <Component3 {...props} c={c} />, [c]);
 const Comp4 = useMemo(()=> <Component4 {...props} d={d} />, [d]);
 const Comp5 = useMemo(()=> <Component5 {...props} e={e} />, [e]);
 const Comp6 = useMemo(()=> <Component6 {...props} f={f} />, [f]);
 const Comp7 = useMemo(()=> <Component7 {...props} g={g} />, [g]);
 const Comp8 = useMemo(()=> <Component8 {...props} h={h} />, [h]);
 const Comp9 = useMemo(()=> <Component9 {...props} i={i} />, [i]);

 return (
   <View>
     {Comp1}
     {Comp2}
     {Comp3}
     {Comp4}
     {Comp5}
     {Comp6}
     {Comp7}
     {Comp8}
     {Comp9}
   </View>
 );
}

Может у меня больше 20 Functional Components, и во всех них у меня такие же ситуации, как и я useMemo крючки.

Мой вопрос: это bad experience которые влияют плохо performance вместо хорошего performance? или нет, по моим условиям проблем нет.

1 ответ

Я предполагаю, что для React.memo применяется тот же общий совет, что и для shouldComponentUpdate и PureComponent: выполнение сравнений имеет небольшую стоимость, и есть сценарии, в которых компонент никогда не запомнит должным образом (особенно если он использует props.children). Так что не следует просто автоматически оборачивать все везде. Посмотрите, как ваше приложение ведет себя в производственном режиме, используйте сборки профилирования React и профилировщик DevTools, чтобы увидеть узкие места, и стратегически используйте эти инструменты для оптимизации частей дерева компонентов, которые действительно выиграют от этих оптимизаций.

Другие вопросы по тегам