Решайте задачи на JavaScript0 из 169 задач решено
Перейти к задачам
2669 просмотров
От 4 июня 2024

Ответы на вопросы для собеседования по React.js

1

Что такое React?

React - JavaScript библиотека, разработанная Facebook в 2011. В основе лежит компонентный подход, позволяющий создавать переиспользуемые UI-компоненты. Служит для создания сложных интерактивных интерфейсов для веб-сайтов и мобильных приложений.

2

Что такое виртуальный DOM?

Виртуальный DOM (VDOM) - это копия Document Object Model, которую в своем ядре выстраивает фреймворк (в данном случае React). Вместо того, чтобы при каждом изменении данных заставлять браузер переформировывать DOM, внутри фреймворка происходит перерасчёт Virtual DOM. Дальше по результатам сравнения построенного Virtual DOM и DOM фреймворк вносит точечные изменения в реальный DOM. Этот механизм существенно повышает производительность React-приложения, так как позволяет избежать ненужных перерисовок и вычислений браузеру.

3

Что такое JSX?

JSX - это дополнение к синтаксису JS, которое позволяет писать HTML в React компонентах. JSX - синтаксический сахар для функции React.createElement(component, props, ...children). За правильный парсинг и дальнейшую обработку отвечает babel.

4

Что такое useEffect?

useEffect(() => { console.log('side effect') }, []) useEffect - это хук, принимающий функцию, которая будет выполнена после каждой перерисовки компонента. Однако, вторым параметром в useEffect передается массив зависимостей (переменные состояния) - при его наличии функция, переданная в useEffect, будет выполняться не при каждой перерисовке, а только в случае изменения элемента из массива зависимостей. useEffect вызывается асинхронно после перерисовки компонента.

5

Что такое useLayoutEffect?

useLayoutEffect(() => { console.log('side effect') }, []) useLayoutEffect - это аналог useEffect, отличающийся тем, что выполняется синхронно до перерисовки компонента, что бывает крайне полезным при взаимодействии в функции-коллбеке с DOM.

6

Как сбросить эффект?

useEffect(() => { let mounted = true; setTimeout(() => { if (mounted) { setUsername('hello world'); } }, 4000); return () => mounted = false; }, []); Функция, переданная в useEffect и useLayoutEffect, может при необходимости возвращать другую функцию, которая будет вызвана в момент размонтирования компонента, а также перед каждым своим исполнением, чтобы сбросить эффект предыдущего рендера).

7

Что такое батчинг ререндеров?

Батчингом в React называют процесс группировки нескольких вызовов обновления состояния в один этап ререндера. Это положительно сказывается на производительности. До React 18 батчинг автоматически работал только для обработчиков DOM событий: function App() { const [count, setCount] = useState(0); const [flag, setFlag] = useState(false); function handleClick() { setCount(c => c + 1); // Не вызывает ререндер setFlag(f => !f); // Не вызывает ререндер // React вызовет ререндер только один раз, в конце } /* function handleClick() { fetchSomething().then(() => { // До React 17 следующие вызовы не батчились // Установка состояния происходит “после” события, в колбэке асинхронного вызова setCount(c => c + 1); // Спровоцирует ререндер setFlag(f => !f); // Спровоцирует ререндер }); } */ return ( <div> <button onClick={handleClick}>Next</button> <h1 style={{ color: flag ? "blue" : "black" }}>{count}</h1> </div> ); } В React 18 все обновления состояния внутри Promise, таймаутов, fetch-запросов будут батчиться также, как для обработчиков DOM-событий. Код ниже: function handleClick() { setCount(c => c + 1); setFlag(f => !f); // React будет вызывать ререндер только один раз, в конце } //работает так же, как и этот код: setTimeout(() => { setCount(c => c + 1); setFlag(f => !f); // React будет вызывать ререндер только один раз, в конце }, 1000);

Логотип ДевстанцииАвторизуйтесь, чтобы просматривать следующий контент
9

Как отменить батчинг?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
10

Что такое React.Suspense?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
11

Что такое SuspenseList?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
12

Что такое React.StrictMode?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
13

Что такое конкурентный режим?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
14

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
15

Что такое React.Fragment?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
16

Что такое React Context?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
17

Что такое refs в React?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
18

setState синхронный или асинхронный?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
19

В чем разница memo и useMemo?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
20

Зачем нужен атрибут key?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
21

Что такое prop drilling?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
22

Как оптимизировать React-приложение?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
23

Как тестировать React-приложение?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
24

Что такое ErrorBoundary?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
25

Почему этот код нестабилен?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
26

Что такое reducer?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
Хотите стать частью сообщества Девстанции?
Вступайте в наш чат в Telegram

Также в этой категории

Вопросник
  24 вопроса

Полезные хуки на React.js

Сборник пользовательских хуков на React.js

1846 просмотров
От 17 февраля 2024

Вам может быть интересно

Викторина
  21 вопрос

Промисы, async/await и Event Loop

Вопросы про Promise API, async/await и цикл событий

1191 просмотр
От 7 февраля 2024
Викторина
  33 вопроса

Подковыристые основы JavaScript

Типичные и не очень вопросы с собеседования по JavaScript

920 просмотров
От 7 февраля 2024
Викторина
  10 вопросов

Сложные вопросы по HTML

Вопросы про HTML для опытных разработчиков

415 просмотров
От 4 октября 2023
Викторина
  32 вопроса

Большая викторина на знание CSS

Большая викторина по вопросам о CSS

281 просмотр
От 2 июня 2023
Вопросник
  21 вопрос

Вопросы с собеседований по TypeScript

Ответы на вопросы с собеседований по TypeScript

2895 просмотров
От 4 июня 2024
Вопросник
  19 вопросов

Вопросы с собеседований по CSS

Ответы на вопросы про CSS на собеседовании

1684 просмотра
От 4 июня 2024

Топ тредов

Gravatar for 1773kartan
Kartan
: Задача в JavaScript "Поиск пары чисел по сумме"

Последнее сообщение:
Gravatar for 1773kartan
Kartan
: Тест ожидает, что функция вернёт пустой список [], а не список с элементами [-1, -1], если не удаётс...
1 сообщение
21 просмотр

: Задача в JavaScript "Форматирование текста"

Последнее сообщение:
: Но тогда другой кейс уже противоречит подходу. Вызов: formatText("Мама пошла в магазин", 4) Ожидалос...
3 сообщения
46 просмотров

Gravatar for 1623bbush
bbush
: Задача в JavaScript "Числовая спираль"

Последнее сообщение:
Gravatar for 1773kartan
Kartan
: В матрице размером 4x3 не может быть числа 13, максимальное количество цифр - 12. В тесте ошибка
2 сообщения
103 просмотра

Все категории