Добавление файлов в индекс:
git add file.txt
Просмотр состояния индекса:
git status
Индекс позволяет точно контролировать, какие изменения попадут в коммит, включая частичное добавление изменений в файлах.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
<iframe src="page.html" width="300" height="200"></iframe>
Основные отличия:
- iframe работает как встроенный элемент, а фреймы требовали специальной структуры
<frameset> - iframe поддерживает стилизацию через CSS
- iframe безопаснее и современнее устаревших фреймов
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
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