Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Глобальная регистрация делает компонент доступным во всём приложении через
Локальная регистрация ограничивает область видимости компонента текущим экземпляром Vue через свойство
Глобальная регистрация увеличивает размер сборки, так как компонент включается даже если не используется. Локальная — предпочтительна для оптимизации.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
Vue.component().
Vue.component('MyComponent', { /* options */ });
Локальная регистрация ограничивает область видимости компонента текущим экземпляром Vue через свойство
components.
new Vue({
components: {
MyComponent: { /* options */ }
}
});
Глобальная регистрация увеличивает размер сборки, так как компонент включается даже если не используется. Локальная — предпочтительна для оптимизации.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Для изменения курсора при наведении используется CSS-свойство
Доступны стандартные варианты:
Размер кастомного курсора ограничен 128×128px в большинстве браузеров.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
cursor с указанием типа курсора.
.element:hover {
cursor: pointer; /* Рука с пальцем */
}
Доступны стандартные варианты:
default, pointer, text, move, not-allowed. Для кастомных изображений используется синтаксис:
.custom-cursor {
cursor: url('cursor.png'), auto; /* Своё изображение + fallback */
}
Размер кастомного курсора ограничен 128×128px в большинстве браузеров.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
JSX-трансформация — это процесс преобразования JSX-синтаксиса в вызовы
Трансформация позволяет писать декларативный HTML-подобный код, который затем превращается в оптимизированные вызовы React API. Современные сборщики автоматически обрабатывают JSX через плагины типа
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
React.createElement(). На этапе сборки Babel или другие транспиляторы конвертируют JSX в обычный JavaScript.
// До трансформации
const element = <div className="test">Hello</div>;
// После трансформации
const element = React.createElement('div', { className: 'test' }, 'Hello');
Трансформация позволяет писать декларативный HTML-подобный код, который затем превращается в оптимизированные вызовы React API. Современные сборщики автоматически обрабатывают JSX через плагины типа
@babel/plugin-transform-react-jsx.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Атрибут
Браузер автоматически проверяет заполнение таких полей при отправке формы. Для кастомной валидации можно использовать JavaScript и CSS-псевдоклассы типа
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
required указывает, что поле формы обязательно для заполнения перед отправкой. Добавляется к элементам <input>, <select> и <textarea> без значения.
<input type="text" required>
<select required>
<option value="">Выберите</option>
</select>
<textarea required></textarea>
Браузер автоматически проверяет заполнение таких полей при отправке формы. Для кастомной валидации можно использовать JavaScript и CSS-псевдоклассы типа
:invalid. Невалидные поля с required блокируют отправку формы.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Синтаксис
Функция с
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
async/await упрощает работу с промисами, делая асинхронный код похожим на синхронный.
async function fetchData() {
const response = await fetch('url'); // Ожидание выполнения промиса
const data = await response.json(); // Ожидание преобразования
return data;
}
Функция с
async всегда возвращает промис. await можно использовать только внутри async -функций и оно приостанавливает выполнение до разрешения промиса. Ошибки обрабатываются через try/catch.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Функция
Если переменная не определена, можно указать fallback-значение вторым параметром:
Переменные вычисляются во время выполнения и поддерживают каскадирование.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
var() позволяет использовать CSS-переменные (кастомные свойства), объявленные через --prefix-name.
:root {
--main-color: #3498db; /* Объявление переменной */
}
.element {
color: var(--main-color); /* Использование переменной */
}
Если переменная не определена, можно указать fallback-значение вторым параметром:
.element {
background: var(--unknown-color, #f1c40f); /* Используется #f1c40f, если переменной нет */
}
Переменные вычисляются во время выполнения и поддерживают каскадирование.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Компонент высшего порядка (HOC) — это функция, которая принимает компонент и возвращает новый улучшенный компонент с дополнительной логикой.
HOC используются для повторного использования логики (логирование, авторизация, подписки). Это альтернатива хукам, но с менее явным потоком данных.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
function withLogging(WrappedComponent) {
return function(props) {
console.log('Rendered:', WrappedComponent.name);
return <WrappedComponent {...props} />;
};
}
HOC используются для повторного использования логики (логирование, авторизация, подписки). Это альтернатива хукам, но с менее явным потоком данных.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
ARIA-атрибуты (Accessible Rich Internet Applications) — это набор специальных атрибутов, которые делают веб-контент доступным для вспомогательных технологий, таких как скринридеры.
Они описывают роли (role), состояния (aria-disabled, aria-checked) и свойства элементов (aria-labelledby), когда стандартного HTML недостаточно. Например, для кастомных виджетов или динамически изменяемого контента.
Использование ARIA обязательно для соответствия стандартам доступности (WCAG).
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
<button aria-label="Закрыть меню" aria-expanded="false">×</button>
Они описывают роли (role), состояния (aria-disabled, aria-checked) и свойства элементов (aria-labelledby), когда стандартного HTML недостаточно. Например, для кастомных виджетов или динамически изменяемого контента.
<div role="alert" aria-live="assertive">Ошибка загрузки</div>
Использование ARIA обязательно для соответствия стандартам доступности (WCAG).
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
WeakMap и WeakSet — это коллекции, хранящие объекты как ключи (для WeakMap) или элементы (для WeakSet) без предотвращения их сборки мусора.
const weakMap = new WeakMap();
const obj = {};
weakMap.set(obj, 'data'); // Ключ — объект
Отличие от
Map/Set: - Не поддерживают перебор методовом
forEach или size - Ключи должны быть объектами
- Автоматически удаляют записи при удалении объекта-ключа
Используются для хранения метаданных или кеширования без утечек памяти.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Set – коллекция уникальных значений. Позволяет быстро проверять наличие элемента, добавлять и удалять значения.
Map – коллекция пар ключ-значение, где ключом может быть любой тип. Удобен для хранения данных с нестроковыми ключами.
Обе структуры поддерживают итерацию и имеют методы
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
const set = new Set([1, 2, 3]);
set.add(4); // Добавить значение
set.has(2); // true – проверка наличия
set.delete(1); // Удалить значение
Map – коллекция пар ключ-значение, где ключом может быть любой тип. Удобен для хранения данных с нестроковыми ключами.
const map = new Map();
map.set('name', 'Alice'); // Добавить запись
map.get('name'); // 'Alice' – получить значение
map.delete('name'); // Удалить запись
Обе структуры поддерживают итерацию и имеют методы
size, clear().Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Атрибут
В этом примере
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
srcset используется для указания нескольких версий изображения с разным разрешением, чтобы браузер мог выбрать наиболее подходящее в зависимости от размера экрана и плотности пикселей.<img src="image-default.jpg"
srcset="image-small.jpg 480w, image-medium.jpg 800w, image-large.jpg 1200w"
sizes="(max-width: 600px) 480px, (max-width: 900px) 800px, 1200px"
alt="Example image">
В этом примере
srcset содержит три версии изображения с указанием их ширины в пикселях. Атрибут sizes определяет, какое изображение использовать в зависимости от ширины экрана. Это улучшает производительность и адаптивность веб-страниц.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
useContext — это хук для доступа к данным контекста без пропсдриллинга. Создание контекста:
const MyContext = createContext(defaultValue);
Обертывание компонентов провайдером:
<MyContext.Provider value={someValue}>
<ChildComponent />
</MyContext.Provider>Использование в компоненте:
const value = useContext(MyContext);
Хук подписывает компонент на изменения контекста и вызывает ререндер при обновлении значения. Работает только с контекстом, созданным через
createContext. Позволяет избежать передачи данных через промежуточные компоненты.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
git show HEAD # Просмотр текущего коммита
HEAD хранится в
.git/HEAD и может ссылаться на другой указатель (например, ref: refs/heads/main) или хэш коммита.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Рендеринг массивов в React выполняется с помощью метода
Использование
Для условного рендеринга можно комбинировать
Если массив пуст, можно вывести fallback-контент.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
map(), который преобразует каждый элемент массива в JSX-элемент. Каждый элемент должен иметь уникальный key для оптимизации процесса обновления DOM.
const items = ['Apple', 'Banana', 'Orange'];
const listItems = items.map((item, index) => (
<li key={index}>{item}</li>
));
Использование
index в качестве key допустимо, но не рекомендуется для динамически изменяемых списков. Лучше применять уникальные идентификаторы из данных. Для условного рендеринга можно комбинировать
map() с проверками:
{items.length > 0 && items.map(item => (
<div key={item.id}>{item.name}</div>
))}
Если массив пуст, можно вывести fallback-контент.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1