[React] > Basic (Часть 2) Flashcards

1
Q

[Функциональный React]
Для чего нужен хук useState?

A

useState нужен для хранения состояния

($) если нужно обьединять состояния обьектов то лучше юзать useReducer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

[Функциональный React]
Расскажите о хуке useEffect

A

Хук useEffect принимает функцию которая реализует мутации, подписки, таймеры. Выполняется после каждого рендера. Вызывается при изминение данных которые мы передаем вторым аргументом

($) useEffect - это комбо из componentDidMount, componentDidUpdate и componentWillUnmount.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

[Функциональный React]
Для чего нужен хук useContext?

A

useContext нужен для пробрасывания глобальных данных, таких как тема, юзер инфо, язык

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

[Функциональный React]
Для чего нужен хук useReducer?

A

useReducer нужен для хранения сложных обьектов или мы зависим от предедущего стейта, также имеет лучшую производительность по глубокому обновлению

($) dispatch стабильна, изза чего ее не обьязательно включать в зависимости хуков useEffect и useCallback

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

[Функциональный React]
Для чего нужен хук useCallback?

A

useCallback нужен для меморизации функции

($) полезно если передаем колбэк как пропс

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

[Функциональный React]
Для чего нужен хук useMemo?

A

useMemo нжуен для меморизации значения

($) повышает производительность, меньше просчетов

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

[Функциональный React]
Для чего нужен хук useRef?

A

useRef нужен для доступа к DOM елементу

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Что такое порталы в React?

A

Порталы позволяют рендерить дочерние элементы в DOM-узел, который находится вне DOM-иерархии родительского компонента.

Первый аргумент (child) — это любой React-компонент, который может быть отрендерен, такой как элемент, строка или фрагмент. Следующий аргумент (container) — это DOM-элемент.

Типовой случай применения порталов — когда в родительском компоненте заданы стили overflow: hidden или z-index, но вам нужно чтобы дочерний элемент визуально выходил за рамки своего контейнера. Например, диалоги, всплывающие карточки и всплывающие подсказки.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Что такое React Reconciliation (Cверка) и как он работает?

A

React Reconciliation (Cверка) - это процесс, посредством которого React обновляет DOM. Когда состояние компонента изменяется, React должен рассчитать необходимость обновления DOM. Это делается путем создания виртуального DOM и сравнения его с текущим DOM. В этом контексте виртуальный DOM будет содержать новое состояние компонента.

При сравнении двух деревьев первым делом React сравнивает два корневых элемента. Поведение различается в зависимости от типов корневых элементов.
Всякий раз, когда корневые элементы имеют различные типы, React уничтожает старое дерево и строит новое с нуля.

При сравнении двух React DOM-элементов одного типа, React смотрит на атрибуты обоих, сохраняет лежащий в основе этих элементов DOM-узел и обновляет только изменённые атрибуты.

По умолчанию при рекурсивном обходе дочерних элементов DOM-узла React проходит по обоим спискам потомков одновременно и создаёт мутацию, когда находит отличие. Эта неэффективность может стать проблемой. Когда у дочерних элементов есть ключи, React использует их, чтобы сопоставить потомков исходного дерева с потомками последующего дерева.

($)
сравнивает ссылки обьектов, а не сами обьекты (иначе было бы дорого по вычислениям)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

[Функциональный React]
Что такое React.memo

A

React.memo — это HOC не позволяющий ререндерить дочерний компонент при одних и тех же значениях пропсов

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

[Функциональный React]
Расскажите о хуке UseLayoutEffect

A

Хук работает как useEffect, но запускается после всех изменений DOM.
Полезен для чтения макета DOMа и синхронного повторного рендеринга (???).

($)
При SSR не стоит юзать UseLayoutEffect так как нужно дождаться загрузку джаваскрипта

How well did you know this?
1
Not at all
2
3
4
5
Perfectly