Встречается на собеседованиях • сегодня

Как избежать ререндер компонента

Чтобы избежать лишних ререндеров компонента в React, можно использовать несколько подходов:

  1. React.memo - для мемоизации функциональных компонентов:
jsx
const MyComponent = React.memo(function MyComponent(props) {
  /* рендер только если пропсы изменились */
});
  1. useMemo/useCallback - для мемоизации значений и функций:
jsx
const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
const memoizedCallback = useCallback(() => { doSomething(a, b) }, [a, b]);
  1. Оптимизация пропсов - избегайте передачи новых объектов/функций в пропсах на каждом рендере.

  2. shouldComponentUpdate (для классовых компонентов):

jsx
shouldComponentUpdate(nextProps, nextState) {
  return this.props.value !== nextProps.value;
}
  1. Разделение состояния - выносите часто изменяющиеся части в отдельные компоненты.

Важно помнить, что преждевременная оптимизация может усложнить код - сначала измеряйте производительность с помощью React DevTools.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы