Advance Flashcards

1
Q

Что такое сверка (reconciliation)?

A

Это алгоритм React, используемый для того, чтобы отличить одно дерево элементов от другого для определения частей, которые нужно будет заменить

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

Какие эвристики используются в React при сверке деревьев?

A
  1. Два разных типа элементов (div, a, …) порождают разные деревья
  2. Разработчик может подсказать какие зависимые элементы не нуждаются в перерисовке при помощи пропса key

Такие эвристики позволяют проводить O(n) операций сравнения для n элементов в дереве.

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

Как React отрабатывает при изменении типа корневого элемента?

Пример: span -> div

A

Если тип корневого узла изменился, реакт удаляет всё нижележащее дерево и создаёт его заново для нового типа. Состояния, хранившиеся в старом дереве, удаляются.

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

Зачем нужен пропс key?

A

Ключи нужны для того чтобы реакт различал и лишний раз не обновлял зависимые элементы если их много.

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

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

Какие проблемы может вызвать использование порядковых индексов в качестве ключей?

A

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

В результате, данные могут смещаться в соседние элементы при вставке/удалении или изменении порядка данных в массив.

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

Что такое virtual DOM?

A

Это концепция в которой идеальное (виртуальное) представление UI всегда хранится в памяти и синхронизируется с настоящей DOM с помощью библиотеки (такой как ReactDOM).

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

Что такое virtual DOM? Как он реализован в реакте (в общих чертах)? Что он даёт?

A

Это концепция в которой идеальное (виртуальное) представление UI всегда хранится в памяти и синхронизируется с настоящей DOM с помощью библиотеки (такой как ReactDOM).

В реакте, виртуальный дом - это объекты элементов. Реакт также хранит дополнительную информацию о дереве объектов в специальных объектах - fibers.

Виртуальный DOM создаёт абстракцию над управлением атрибутами и ручным управлением DOM’ом. Он обеспечивает декларативность API реакта, позволяя описывать желаемые состояния UI.

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

Что такое чистый компонент (pureComponent)?

Как создать чистый функциональный компонент?

A

Чистый компонент поверхностно сравнивает новые пропсы с предыдущими, и при отсутствии изменений не запускает render, а переиспользует результат предыдущего рендера.

Чистый функциональный компонент можно создать используя HOC React.memo(component, equalityCheck)

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