visibility.
.hidden-element {
visibility: hidden;
}
Элемент остается на странице, занимает место, но становится невидимым. В отличие от
display: none, не удаляется из потока документа. Альтернативный вариант — прозрачность:
.transparent-element {
opacity: 0;
}
Сохраняет кликабельность и взаимодействие, если не отключено pointer-events.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3💯3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
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
Свойст
При таком стиле переход по ссылке с якорем (например, <a href="#section">) будет происходить с плавной прокруткой до целевого элемента. Также это работает с методами JavaScript, т
Значение по умолчанию —
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
во scroll-behavior в CSS позволяет управлять поведением прокрутки на странице. При установке значения smooth прокрутка становится плавной, а не мгновенной. Это особенно полезно для навигации по странице с помощью якорей или JavaScript.
html {
scroll-behavior: smooth;
}
При таком стиле переход по ссылке с якорем (например, <a href="#section">) будет происходить с плавной прокруткой до целевого элемента. Также это работает с методами JavaScript, т
акими как scrollTo или scrollIntoView.
document.getElementById('section').scrollIntoView({ behavior: 'smooth' });
Значение по умолчанию —
auto, при котором прокрутка происходит мгновенно. Свойство поддерживается в современных браузерах, но для старых версий может потребоваться полифил.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Методы Vue — это функции, которые определяются в объекте
В шаблоне метод вызывается через
Методы реагируют на изменения данных и обновляют DOM через реактивную систему Vue. Они не кэшируются, в отличие от вычисляемых свойств, и выполняются каждый раз при вызове.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
methods компонента. Они используются для обработки событий, выполнения логики или изменения состояния компонента. Методы можно вызывать из шаблона через директивы (например, v-on) или из других методов.
export default {
data() {
return {
count: 0
};
},
methods: {
increment() {
this.count++;
}
}
};
В шаблоне метод вызывается через
v-on:
<button @click="increment">Увеличить счетчик</button>
Методы реагируют на изменения данных и обновляют DOM через реактивную систему Vue. Они не кэшируются, в отличие от вычисляемых свойств, и выполняются каждый раз при вызове.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Тернарный оператор позволяет компактно записывать условные выражения. Синтаксис:
В этом примере, если
Тернарный оператор удобен для простых условий, но для сложной логики лучше использовать
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
условие ? значение_если_истина : значение_если_ложь. const isLoggedIn = true;
const message = isLoggedIn ? 'Добро пожаловать' : 'Пожалуйста, войдите';
В этом примере, если
isLoggedIn равно true, переменной message присваивается 'Добро пожаловать', иначе — 'Пожалуйста, войдите'.Тернарный оператор удобен для простых условий, но для сложной логики лучше использовать
if-else, чтобы сохранить читаемость кода.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Селектор потомков в CSS выбирает элементы, которые находятся внутри другого элемента, независимо от уровня вложенности. Синтаксис:
В этом примере все элементы
Селектор потомков применяется ко всем подходящим элементам, независимо от их глубины в структуре DOM. Это отличает его от дочернего селектора (>), который выбирает только прямых потомков.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
родитель потомок.
div p {
color: blue;
}
В этом примере все элементы
<p>, находящиеся внутри <div>, будут стилизованы синим цветом, даже если они вложены в другие элементы.Селектор потомков применяется ко всем подходящим элементам, независимо от их глубины в структуре DOM. Это отличает его от дочернего селектора (>), который выбирает только прямых потомков.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Для обработки событий формы в React используется состояние (state) и обработчики событий. События, такие как
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
onChange и onSubmit, позволяют отслеживать ввод данных и отправку формы.
function Form() {
const [inputValue, setInputValue] = useState('');
const handleChange = (e) => {
setInputValue(e.target.value);
};
const handleSubmit = (e) => {
e.preventDefault();
console.log('Отправлено:', inputValue);
};
return (
<form onSubmit={handleSubmit}>
<input type="text" value={inputValue} onChange={handleChange} />
<button type="submit">Отправить</button>
</form>
);
}
onChange обновляет состояние при каждом изменении ввода, а onSubmit обрабатывает отправку формы, предотвращая стандартное поведение браузера с помощью e.preventDefault().Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
<div id="host"></div>
<noscript>
const host = document.getElementById('host');
const shadowRoot = host.attachShadow({ mode: 'open' });
shadowRoot.innerHTML = `<p>Этот текст изолирован в Shadow DOM</p>`;
</noscript>
В этом примере содержимое внутри
shadowRoot изолировано от глобального DOM. Shadow DOM используется в веб-компонентах для создания независимых и переиспользуемых элементов.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
<!-- Компонент с слотом -->
<template>
<div class="container">
<slot></slot>
</div>
</template>
<!-- Использование компонента -->
<MyComponent>
<p>Этот контент попадет в слот</p>
</MyComponent>
Слоты могут быть именованными, что позволяет передавать контент в разные части компонента. По умолчанию используется основной слот (<slot>), который принимает весь переданный контент.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
for...of используется для итерации по элементам итерируемых объектов, таких как массивы, строки, Map, Set и другие. В отличие от for...in, который перебирает ключи, for...of работает непосредственно со значениями.Синтаксис:
const arr = [1, 2, 3];
for (const item of arr) {
console.log(item); // Выводит 1, 2, 3
}
Цикл
for...of упрощает работу с коллекциями, исключая необходимость вручную управлять индексами. Он поддерживает break и continue для управления потоком выполнения. Подходит для работы с массивами и другими итерируемыми структурами, где важны значения элементов.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Элементы в CSS делятся на три основные категории по типу отображения:
1️⃣ Inline элементы (например,
2️⃣ Block элементы (например,
3️⃣ Inline-block элементы сочетают свойства: занимают только необходимое пространство, как inline, но поддерживают задание ширины, высоты и отступов, как block.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
inline, block и inline-block.span, a) занимают только необходимое пространство, не создают разрывов строки до и после себя. Нельзя задавать ширину, высоту или вертикальные отступы.div, p) занимают всю доступную ширину, начинаются с новой строки и поддерживают задание ширины, высоты, отступов.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
useRef и createRef — это хук и функция для создания рефов в React, но они используются в разных контекстах. useRef — это хук, который возвращает мутируемый объект с свойством current. Этот объект сохраняет своё значение между рендерами и не вызывает повторный рендер при изменении. Используется в функциональных компонентах.
const inputRef = useRef(null);
// inputRef.current будет доступен после монтирования компонента
createRef — это функция, которая создаёт новый реф при каждом рендере. Используется в классовых компонентах.
class MyComponent extends React.Component {
inputRef = createRef();
// inputRef.current будет пересоздаваться при каждом рендере
}
Основное отличие:
useRef сохраняет значение между рендерами, а createRef создаёт новый объект при каждом рендере.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
let count: number = 5; // переменная count может быть только числом
function add(a: number, b: number): number {
return a + b; // функция принимает два числа и возвращает число
}
Аннотации типов также используются для объектов, массивов и пользовательских типов. Они делают код более предсказуемым и упрощают его поддержку.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Поверхностное копирование создает новый объект, но копирует только ссылки на вложенные объекты. Изменения вложенных объектов в копии повлияют на оригинал.
const original = { a: 1, b: { c: 2 } };
const shallowCopy = { ...original };
shallowCopy.b.c = 3;
console.log(original.b.c); // 3
Глубокое копирование создает полностью независимую копию объекта, включая все вложенные объекты. Изменения в копии не затрагивают оригинал.
const original = { a: 1, b: { c: 2 } };
const deepCopy = JSON.parse(JSON.stringify(original));
deepCopy.b.c = 3;
console.log(original.b.c); // 2
Для глубокого копирования также можно использовать библиотеки, например, Lodash.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Для подключения CDN достаточно заменить локальные ссылки на файлы на URL-адреса, предоставляемые CDN. Например, для Bootstrap:
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<noscript src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></noscript>
Использование CDN уменьшает нагрузку на сервер и ускоряет доставку контента, так как файлы кэшируются и загружаются с ближайшего сервера сети.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3