Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
В каких случаях могут рассматриваться Angular или Vue и чем они принципиально отличаются от React
Angular и Vue обычно рассматриваются, когда нужен более «из коробки» фреймворк с готовыми соглашениями. React — это библиотека, а не полноценный фреймворк, поэтому он требует самостоятельного выбора архитектуры и инструментов. Angular подходит для крупных корпоративных проектов с жесткими стандартами. Vue часто выбирают за более низкий порог входа и мягкую кривую обучения. Выбор зависит от масштаба проекта, команды и требований к архитектуре.
В каких случаях предпочтительнее использовать v-if, а в каких v-show?
v-if лучше использовать, когда условие меняется редко или компонент тяжёлый для отрисовки. v-show предпочтительнее, если элемент нужно часто показывать и скрывать. v-if полностью добавляет и удаляет элемент из DOM, а v-show лишь меняет его видимость через CSS. Это влияет на скорость переключений и начальную загрузку. Выбор зависит от сценария использования.
Какие хуки доступны до создания DOM-дерева компонента?
До создания DOM-дерева во Vue доступны хуки beforeCreate и created. В beforeCreate ещё нельзя работать с данными и методами. В created уже доступны данные, вычисляемые свойства и методы. Однако DOM на этом этапе ещё не существует. Эти хуки используются для инициализации логики, не связанной с DOM.
Что произойдёт, если добавить новое свойство в объект после его инициализации во Vue?
Если добавить новое свойство в объект после его инициализации, Vue не сделает его реактивным автоматически. Такое свойство не будет отслеживаться системой реактивности. В результате изменения этого свойства не вызовут обновление шаблона. Это связано с тем, как Vue перехватывает доступ к свойствам. Для корректной работы нужно использовать специальные методы.
В каких хуках жизненного цикла следует отписываться от событий?
Отписываться от событий следует перед уничтожением компонента. В Vue для этого используются хуки beforeUnmount и unmounted. В Vue 2 аналогами являются beforeDestroy и destroyed. Это гарантирует, что компонент больше не будет реагировать на внешние события. Такой подход предотвращает ошибки и утечки памяти.
Какие способы существуют для реагирования на смену динамического id в маршруте?
Почему изменение состояния должно происходить только через mutations?
Какую роль играют actions при работе с асинхронной логикой?
Зачем нужен key в v-for?
Что произойдёт, если не использовать динамический :key, а передать строку?
Рейтинг:
4
Сложность:
5
Смену динамического id можно обрабатывать через watch на $route.params, через beforeRouteUpdate или через ключ key у <router-view>. Каждый способ имеет свои особенности. watch и beforeRouteUpdate обновляют данные без пересоздания компонента. Использование key приводит к пересозданию компонента.
Рейтинг:
4
Сложность:
5
Mutations обеспечивают единый и контролируемый способ изменения состояния. Если изменять state напрямую, становится сложно отслеживать источник изменений. Mutations делают изменения синхронными и явными. Это важно для отладки и поддержки приложения. Такой подход упрощает понимание потока данных.
Рейтинг:
5
Сложность:
4
Actions используются для выполнения асинхронной логики, такой как HTTP-запросы или таймеры. Они не изменяют состояние напрямую, а вызывают mutations. Это позволяет отделить бизнес-логику от изменения состояния. Такой подход делает код чище и понятнее. Actions — стандартное место для асинхронных операций.
Рейтинг:
5
Сложность:
6
key нужен для того, чтобы Vue мог правильно сопоставлять элементы списка при обновлениях. Он помогает определить, какой элемент изменился, добавился или удалился. Без key Vue может переиспользовать DOM-узлы неправильно. Это приводит к визуальным и логическим багам. Поэтому key обязателен для динамических списков.
Рейтинг:
4
Сложность:
6
Если передать строку в key без :, все элементы списка получат одинаковый ключ. Vue не сможет различать элементы между собой. Это ломает алгоритм обновления DOM. В результате возможны визуальные и логические ошибки. Такой key фактически бесполезен.
Рейтинг:
4
Сложность:
6
Рейтинг:
4
Сложность:
4
Рейтинг:
4
Сложность:
4
Рейтинг:
4
Сложность:
6
Рейтинг:
4
Сложность:
3