Когда не следует использовать useMemo? - PullRequest
0 голосов
/ 27 апреля 2020

Я использую 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 Ответ

1 голос
/ 27 апреля 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...