const users: Record<string, number> = {
'id1': 25,
'id2': 30
};
Используется для:
- Описания словарей с единым типом значений
- Создания map-подобных структур
- Гарантирует типобезопасность при динамических ключах
Альтернатива index signatures, но с более явным синтаксисом.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
setup(), где логика группируется по функциональности, а не по типам.
import { ref, computed } from 'vue';
export default {
setup() {
const count = ref(0);
const double = computed(() => count.value * 2);
function increment() {
count.value++;
}
return { count, double, increment };
}
}
Преимущества:
- Гибкая организация кода
- Повторное использование логики через composable-функции
- Лучшая типобезопасность с TypeScript
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
vw (viewport width) и vh (viewport height) — относительные единицы, привязанные к размерам окна браузера. 1vw = 1% ширины, 1vh = 1% высоты viewport.
.element {
width: 50vw; /* 50% от ширины окна */
height: 100vh; /* 100% от высоты окна */
}
Применяются для:
- Адаптивных интерфейсов, масштабируемых относительно окна
- Создания полноэкранных секций
- Резиновых элементов без привязки к родительским блокам
Не учитывают скролл-бар, в отличие от
%.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
git reflog для поиска последних действий и git checkout или git reset для возврата файлов.
git reflog # Поиск последнего коммита перед удалением
git checkout HEAD@{n} -- path/to/file # Восстановление файла из истории
Если файлы были проиндексированы, но не закоммичены:
git fsck --lost-found # Поиск dangling-объектов
Для восстановления после
git rm используйте git reset HEAD file перед git checkout -- file.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
React.lazy и Suspense.
const LazyComponent = React.lazy(() => import('./LazyComponent'));
function App() {
return (
<React.Suspense fallback={<div>Loading...</div>}>
<LazyComponent />
</React.Suspense>
);
}
Основные особенности:
- Уменьшает начальный размер бандла
- Загружает компоненты динамически при необходимости
- Требует обертки в
<Suspense> для отображения fallback-контента Работает только с default-экспортами в компонентах.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Атрибут
Работает только с формами (<form>). Поддерживается всеми современными браузерами, но для кастомизации сообщений требуется JavaScript.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
required указывает, что поле формы обязательно для заполнения перед отправкой. Применяется к элементам <input>, <select> и <textarea>. Если поле пустое, браузер блокирует отправку формы и выводит сообщение об ошибке.
<input type="text" name="username" required>
Работает только с формами (<form>). Поддерживается всеми современными браузерами, но для кастомизации сообщений требуется JavaScript.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
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
👍4
Реактивные свойства автоматически обновляют представление при изменении. Vue делает их реактивными через
Обычные свойства (например, объявленные в `created()`) не отслеживаются Vue. Их изменения не вызывают перерисовку.
Реактивность работает только на инициализации. Добавление свойств после создания (this.newProp = value) требует
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
data() или ref() / reactive() (Composition API).
data() {
return { count: 0 } // Реактивное свойство
}
Обычные свойства (например, объявленные в `created()`) не отслеживаются Vue. Их изменения не вызывают перерисовку.
created() {
this.nonReactive = 42 // Не реактивное
}
Реактивность работает только на инициализации. Добавление свойств после создания (this.newProp = value) требует
Vue.set() или reactive().Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Локальный репозиторий хранится на компьютере разработчика и содержит всю историю изменений, ветки и коммиты. Работа с ним не требует интернета.
Удалённый репозиторий (GitHub, GitLab и др.) находится на сервере и служит для синхронизации кода между участниками команды. Команды
Локальный репозиторий можно изменять автономно, а удалённый обеспечивает collaboration и backup.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
Удалённый репозиторий (GitHub, GitLab и др.) находится на сервере и служит для синхронизации кода между участниками команды. Команды
git push и git pull используются для обмена изменениями.
git remote add origin <url> # Добавить удалённый репозиторий
git push -u origin main # Отправить изменения
Локальный репозиторий можно изменять автономно, а удалённый обеспечивает collaboration и backup.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Reconciliation — это процесс сравнения предыдущего и нового Virtual DOM для определения минимального набора изменений перед обновлением реального DOM. React использует эвристический алгоритм (Diffing Algorithm), который сравнивает элементы по типу и ключу (key).
При одинаковых типах React обновляет только изменённые атрибуты и дочерние элементы. Ключи (key) помогают корректно идентифицировать элементы в списках.
Процесс гарантирует производительность, минимизируя операции с реальным DOM.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
// При разных типах элементов React пересоздаёт дерево
<div> <Counter /> </div> → <span> <Counter /> </span> // Full rebuild
При одинаковых типах React обновляет только изменённые атрибуты и дочерние элементы. Ключи (key) помогают корректно идентифицировать элементы в списках.
<ul>
<li key="a">First</li> // Без key может быть неоптимальное обновление
</ul>
Процесс гарантирует производительность, минимизируя операции с реальным DOM.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Оператор
Оператор
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
?. позволяет безопасно обращаться к свойствам вложенных объектов, возвращая undefined при обращении к несуществующему пути, вместо ошибки.
const userName = user?.profile?.name; // undefined, если user или profile отсутствуют
Оператор
! указывает компилятору, что значение точно не null/undefined, даже если тип допускает это. Используется осторожно, так как может вызвать ошибку времени выполнения.
const element = document.getElementById('root')!; // Гарантирует, что элемент существует
?. — для безопасного доступа, ! — для явного утверждения о наличии значения.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Для остановки интервала используется
Всегда сохраняйте возвращаемый ID в переменную, чтобы иметь возможность управлять выполнением. Удаление интервала обычно происходит в обработчиках событий или при выполнении условия.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
clearInterval(), куда передаётся ID, возвращаемый при создании таймера. Без очистки интервал продолжает работать, что может привести к утечкам памяти.
const timerId = setInterval(() => console.log('Tick'), 1000);
clearInterval(timerId); // Остановка интервала
Всегда сохраняйте возвращаемый ID в переменную, чтобы иметь возможность управлять выполнением. Удаление интервала обычно происходит в обработчиках событий или при выполнении условия.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Для использования Vuex необходимо создать хранилище с состояниями (state), мутациями (mutations), действиями (actions) и геттерами (getters), а затем подключить его к приложению через Vue.use(Vuex).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Для адаптивных таблиц применяют:
1. Горизонтальный скролл при переполнении
2. Трансформацию в карточки на мобильных
3. Скрытие неважных колонок
Дополнительно используют viewport-единицы (vw) для гибких размеров ячеек и CSS Grid для сложных раскладок.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
1. Горизонтальный скролл при переполнении
.table-container { overflow-x: auto; }
2. Трансформацию в карточки на мобильных
@media (max-width: 600px) {
td { display: block; }
}
3. Скрытие неважных колонок
@media (max-width: 768px) {
.secondary-column { display: none; }
}
Дополнительно используют viewport-единицы (vw) для гибких размеров ячеек и CSS Grid для сложных раскладок.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Для отображения установленной версии Git используется команда
Эта команда работает на всех операционных системах (Windows, macOS, Linux). Если Git не установлен, система выведет ошибку или предложит установить его.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
git --version в терминале. Результат показывает текущую версию в формате git version X.Y.Z.
git --version
Эта команда работает на всех операционных системах (Windows, macOS, Linux). Если Git не установлен, система выведет ошибку или предложит установить его.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
XHTML обрабатывается парсерами как XML, что обеспечивает лучшую согласованность, но требует точного синтаксиса, тогда как HTML более терпим к ошибкам разметки.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Error Boundaries — это компоненты, которые перехватывают JavaScript-ошибки в дочерних компонентах, логируют их и отображают резервный UI вместо «поломанного» дерева компонентов.
Работают как
- Обработчиках событий
- Асинхронном коде (setTimeout, промисы)
- SSR
- Внутри самого Error Boundary
✈️ Frontend собеседования
class ErrorBoundary extends React.Component {
state = { hasError: false };
static getDerivedStateFromError() {
return { hasError: true };
}
componentDidCatch(error, info) {
logErrorToService(error, info); // Логирование ошибки
}
render() {
return this.state.hasError
? <FallbackComponent />
: this.props.children;
}
}
Работают как
try/catch, но только для компонентов. Не перехватывают ошибки в: - Обработчиках событий
- Асинхронном коде (setTimeout, промисы)
- SSR
- Внутри самого Error Boundary
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5