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

1
Q

[Классовый React]
Как работает и для чего нужен constructor?

A

constructor — вызывается до монтирования, применяет super(props) для пробрасывания пропсов
(используем для)
1) для привязка обработчиков событий к экземпляру
2) для инициализации this.state

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

[Классовый React]
Для чего сделан метод componentDidMount?

A

componentDidMount - вызывается сразу после монтирования.

(нужен для):
1) взаимодействия с DOM узлами
2) для создания запрос
3) для подключения подписок

($) монтирование — вставки компонента в DOM
($) подписки нужно не забыть и очистить в componentWillUnmount

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

[Классовый React]
Для чего сделан метод
componentDidUpdate(prevProps, prevState, snapshot)?

A

componentDidUpdate(prevProps, prevState, snapshot) - вызывается сразу после обновления, но не вызывается при первом рендере

(нужен для):
1) работы с DOM при обновлении компонента
2) для создания запрос на основе обновления пропсов

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

[Классовый React]
Для чего сделан метод componentWillUnmount

A

componentWillUnmount - вызывается непосредственно перед размонтированием и удалением компонента

(нужен для):
1) отмены подписок
2) сброс запросов

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

[Классовый React]
Для чего сделан метод shouldComponentUpdate(nextProps, nextState)

A

shouldComponentUpdate(nextProps, nextState) — вызывается перед рендером, когда получает новые пропсы или стейт. По дефолту true

(нужен для):
1) Повышения производительности но лучше юзать PureComponent

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

[Классовый React]
Для чего сделан метод static getDerivedStateFromProps(props, state)

A

static getDerivedStateFromProps(props, state) — вызывается непосредственно перед вызовом метода render, при монтировании и при обновлениях, возвращает объект для обновления состояния или null, чтобы ничего не обновлять

(нужен для):
1) для обновлений основанных только на пропсах
(пример) создание компонента Transition

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

[Классовый React]
Для чего сделан метод getSnapshotBeforeUpdate(prevProps, prevState)

A

getSnapshotBeforeUpdate(prevProps, prevState) - вызывается прямо перед этапом «фиксирования» в DOM, берет инфу и передает в componentDidUpdate() как snapshot

(нужен для)
К примеру для коректировки скрола

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

[Классовый React]
Для чего сделан метод static getDerivedStateFromError(error)

A

static getDerivedStateFromError(error) - Этот метод жизненного цикла вызывается после возникновения ошибки у компонента-потомка.

(нужен для)
рендера юая с ошибкой,

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

[Классовый React]
Для чего сделан метод componentDidCatch(error, info)

A

componentDidCatch(error, info) вызывается после возникновения ошибки у компонента-потомка. Он получает параметры: error, info — который говорит в каком компоненте произошла ошибка.

(нужен для)
логирования и выполнения запросов

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

Что такое Context в React и для чего он используется?

A

Контекст сделан для передачи глобальных данных

(пример)
1) Раздаем юзер тонкен
2) Для передачи глобального конфига, выбор языка

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

Что такое Виртуальная DOM (VDOM)?

A

Виртуальный DOM (VDOM) — это концепция, в которой создается виртуальная копия DOM`а которая синохронизируется с ним, и обновляет его с помощью библиотеки (к примеру ReactDOM)

(зачем?)
Отслеживание и обловления реального DOM занимает много ресурсов

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

Для чего нужен атрибут key при рендере списков?

A

Ключи нужны для сопоставление react елементов с массивом после его изминения.

($) ключ должен быть уникальными

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

Как работает проп children?

A

Пропс children нужен для пробрасывания react елементов которые хотим отобразить, часто применям в Dialog компонентах

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

В чем разница между управляемыми (controlled) и не управляемыми (uncontrolled) компонентами?

A

В HTML элементы формы, такие как input, textarea и select, обычно сами управляют своим состоянием и обновляют его когда пользователь вводит данные. В React мутабельное состояние обычно содержится в свойстве компонентов state и обновляется только через вызов setState().

В управляемом компоненте с каждой мутацией состояния связана функция-обработчик. Благодаря этому валидация или изменение введённого значения становится простой задачей. Например, если мы хотим, чтобы имя обязательно было набрано заглавными буквами, можно написать такой handleChange

Вместо того, чтобы писать обработчик события для каждого обновления состояния, вы можете использовать неуправляемый компонент и читать значения из DOM через реф.

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

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

[Классовый React]
Что такое PureComponent?

A

React.PureComponent реализует shouldComponentUpdate() поверхностным сравнением пропсов и состояния. Применяется когда метод render() родителя всегда рендерит одинаковый результат при одниковых пропсах и стейте.

(поверхностным сравнением)
не сравнивает глубоко обьекты, не эффективно по затратам
($)
Если родительский пюр не задаст contextTypes то дочерние елемент которые пологаются на контекст будут тоже игнорить обновления.

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

Что такое Компонент высшего порядка (Higher-Order Component, HOC)?

A

Говоря просто, компонент высшего порядка — это функция, которая принимает компонент и возвращает новый компонент. HOC часто встречаются в сторонних библиотеках, например connect в Redux и createFragmentContainer в Relay.

const EnhancedComponent = higherOrderComponent(WrappedComponent);

Давайте реализуем функцию withSubscription — она будет создавать компоненты и подписывать их на обновления DataSource (наподобие CommentList и BlogPost). Функция будет принимать оборачиваемый компонент и через пропсы передавать ему новые данные:

17
Q

[Функциональный React]
Что такое хуки в React?

A

Хуки — нововведение в React 16.8, которое позволяет использовать состояние и другие возможности React без написания классов. Хуки — это функции, с помощью которых вы можете «подцепиться» к состоянию и методам жизненного цикла React из функциональных компонентов. Хуки не работают внутри классов — они дают вам возможность использовать React без классов.

18
Q

[Функциональный React]
Назовите хуки

A

Хуки (не все): SECCMRR
useState
useEffect
useContext
useCallback
useReducer
useRef
useMemo

(будет плюсом): DDTIIL
useImperativeHandle
useLayoutEffect
useDebugValue
useDeferredValue
useTransition
useId