Навыки, необходимые для работы с React.js, относятся к самым востребованным в сфере технологий. Поэтому подготовка к собеседованию по React.js требует серьезной проработки ключевых понятий React. Разберем ответы на 5 вопросов, наиболее часто встречающихся на собеседовании. Материал будет изложен настолько просто, что его поймет даже 14-летний подросток.

1. Что такое JSX и почему он используется в React

Вопрос: Что такое JSX и как он упрощает написание кода в React?

Ответ: JSX расшифровывается как JavaScript XML. Это способ писать HTML-подобный код внутри JavaScript. Он упрощает описание того, как должен выглядеть пользовательский интерфейс.

Вместо того, чтобы писать сложный код document.createElement, можно написать: <h1>Hello, World!</h1>.

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

Думайте об этом так: написание сокращенного текста, который переводчик (Babel) превращает в полноценное предложение, считываемое браузером.

2. Что такое React-компоненты

Вопрос: Почему в React все называется «компонентом»?

Ответ: Компоненты — строительные блоки приложения.

  • Представьте автомобиль: двигатель, колеса и сиденья — его компоненты.
  • Точно так же в приложении React компонентом может быть кнопка (button), форма (form) или даже вся страница.

Существует два основных типа компонентов:

  • Основанные на функциях (функциональные) простые компоненты, возвращающие пользовательский интерфейс.

const Hello = () => <h1>Hello!</h1>;

  • Основанные на классах — компоненты, которые могут выполнять более сложные задачи, но сейчас менее популярны.

Думайте об этом так: каждый компонент — мини-программа, которая совместно с другими компонентами участвует в создании приложения.

3. В чем разница между state и props

Вопрос: Как «state» и «props» помогают управлять данными в React?

Ответ:

State (состояние) — нечто вроде ящика памяти внутри компонента. В нем хранятся данные, которые могут меняться, например счет в игре. Пример:

const [score, setScore] = useState(0);

Можно обновить состояние с помощью setScore(newValue).

Props (свойства) — нечто вроде подарков, передаваемых от одного компонента к другому. Они доступны только для чтения и используются для обмена данными. Пример:

<Greeting name="John" />.

Думайте об этом так:

  • State: ваш личный дневник.
  • Props: записки, которые кто-то передает вам для прочтения.

4. Что такое React-хуки и какие из них наиболее часто используются

Вопрос: Как хуки упрощают написание кода в React?

Ответ: Хуки позволяют использовать такие возможности, как состояние и методы жизненного цикла в функциональных компонентах.

Два важных хука:

  • useState: позволяет добавить state в функциональный компонент:

const [count, setCount] = useState(0);

  • useEffect: запускает код, когда что-то меняется, например при получении данных из API:

useEffect(() => { console.log("Hello, World!"); }, []);

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

5. Что такое Virtual DOM и почему она важна

Вопрос: Как React так быстро обновляет экран?

Ответ: Virtual DOM (виртуальная DOM — Document Object Model) — копия реальной DOM (структуры сайта).

  • React использует эту копию, чтобы понять, что изменилось.
  • Вместо того, чтобы обновлять все, он обновляет только ту часть, которая изменилась.

Думайте об этом так: ресторан, где официант заменяет только те тарелки, которые вы использовали, вместо того, чтобы заново накрывать стол.

Virtual DOM делает React очень быстрым и эффективным.

Заключительные советы

  • Практикуйтесь в написании кода: чтобы быстрее освоить React, создавайте небольшие приложения, например список дел.
  • Разберитесь в понятиях: не ограничивайтесь простым запоминанием терминов — старайтесь понять, как каждая функция помогает решать реальные проблемы.
  • Будьте уверены в себе: большинство интервьюеров просто хотят убедиться, что вы умеете логически мыслить и решать проблемы.

Читайте также:

Читайте нас в Telegram, VK и Дзен


Перевод статьи Be 10x Engineer: 70% Interviewer will ask these 5 React.js question [ 2025 ]

Предыдущая статьяЧто такое «мьютекс» и как им предотвращаются состояния гонки?
Следующая статьяJetpack Compose: настройка Retrofit и Ktor с помощью Dagger Hilt для внедрения зависимостей