Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1
git checkout <branch-name>. Если ветка существует, она будет активирована, а рабочая директория обновится до состояния этой ветки.
git checkout feature-branch
Для создания и переключения на новую ветку одновременно можно добавить флаг
-b.
git checkout -b new-feature-branch
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
React.lazy позволяет лениво загружать компоненты, что полезно для оптимизации производительности приложения. Он используется для динамического импорта компонентов, которые загружаются только при необходимости.
const LazyComponent = React.lazy(() => import('./LazyComponent'));
Для работы с лениво загружаемыми компонентами требуется обернуть их в
Suspense, чтобы указать запасной контент (например, лоадер) на время загрузки.
<Suspense fallback={<div>Loading...</div>}>
<LazyComponent />
</Suspense>
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9💯3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
declare module 'some-library' {
export function someFunction(): void;
}
Такие файлы необходимы при работе с библиотеками, которые не имеют встроенной поддержки TypeScript, или для расширения типов существующих модулей.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Пример на SCSS:
$primary-color: #3498db;
.button {
background-color: $primary-color;
&:hover {
background-color: darken($primary-color, 10%);
}
}
- Переменная
$primary-color хранит цвет, а функция darken() затемняет его. - Вложенность позволяет группировать стили, улучшая читаемость.
Популярные препроцессоры: SASS, LESS, Stylus. Они компилируются в стандартный CSS, который понимают браузеры.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
Пример с переменными:
console.log(x); // undefined
var x = 5;
- Переменные, объявленные через
var, поднимаются, но их значение инициализируется как undefined. Пример с функциями:
foo(); // "Hello"
function foo() {
console.log("Hello");
}
- Объявления функций поднимаются полностью, поэтому их можно вызывать до объявления.
Hoisting не применяется к
let и const, которые остаются в "временной мертвой зоне" до объявления.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤2👀1
Для создания портала используется
ReactDOM.createPortal. Первый аргумент — это React-элемент, который нужно отрендерить, а второй — DOM-узел, куда будет вставлен элемент.
import ReactDOM from 'react-dom';
function Modal({ children }) {
return ReactDOM.createPortal(
<div className="modal">
{children}
</div>,
document.getElementById('modal-root')
);
}
В этом примере компонент
Modal рендерится в элемент с id modal-root, который может находиться вне основного дерева компонентов. Это позволяет управлять слоями интерфейса независимо от основной структуры приложения.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
.container {
display: flex;
justify-content: center; /* Центрирование по горизонтали */
align-items: center; /* Центрирование по вертикали */
height: 100vh; /* Высота контейнера на весь экран */
}
Другой способ — с помощью Grid:
.container {
display: grid;
place-items: center; /* Центрирование по горизонтали и вертикали */
height: 100vh; /* Высота контейнера на весь экран */
}
Для абсолютно позиционированных элементов подойдет следующий подход:
.element {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
Каждый из этих методов обеспечивает точное центрирование элемента в зависимости от требований и контекста.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2
Для массивов:
const numbers = [1, 2, 3];
const [first, second] = numbers;
// first = 1, second = 2
Элементы массива присваиваются переменным по порядку.
Для объектов:
const user = { name: 'Alice', age: 25 };
const { name, age } = user;
// name = 'Alice', age = 25
Имена переменных должны совпадать с ключами объекта. Можно использовать псевдонимы:
const { name: userName, age: userAge } = user;
// userName = 'Alice', userAge = 25
Деструктуризация часто используется для извлечения значений из параметров функций или возвращаемых данных.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
1. Типизация пропсов и состояния
Позволяет явно указать типы для пропсов и состояния компонентов, что уменьшает вероятность ошибок.
interface Props {
name: string;
age: number;
}
const User: React.FC<Props> = ({ name, age }) => <div>{name}, {age}</div>;
2. Автодополнение и подсказки
Редакторы кода предоставляют автодополнение и подсказки, что ускоряет разработку и уменьшает количество опечаток.
3. Раннее обнаружение ошибок
Ошибки типов выявляются на этапе компиляции, что снижает вероятность багов в рантайме.
4. Улучшение читаемости кода
Типы делают код более понятным, особенно в больших проектах или при работе в команде.
5. Интеграция с экосистемой React
TypeScript поддерживает типы для хуков, контекста и других фич React, что упрощает их использование.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
action и method определяют, как данные будут отправлены на сервер.action
Указывает URL, на который отправляются данные формы. Это может быть путь к серверному скрипту, который обрабатывает данные.
<form action="/submit-form" method="post">
В данном случае данные формы будут отправлены на
/submit-form.method
Определяет HTTP-метод, используемый для отправки данных. Основные значения:
-
GET: Данные добавляются в URL как параметры запроса. Подходит для нечувствительных данных.-
POST: Данные отправляются в теле запроса. Используется для отправки конфиденциальной информации или больших объемов данных.
<form action="/search" method="get">
Здесь данные формы будут отправлены методом GET, и их можно увидеть в адресной строке.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
concat или оператора расширения (...). Оба способа создают новый массив, содержащий элементы исходных массивов.Использование concat:
Метод
concat объединяет массивы, возвращая новый массив. const arr1 = [1, 2];
const arr2 = [3, 4];
const combined = arr1.concat(arr2); // [1, 2, 3, 4]
Использование оператора расширения:
Оператор
... позволяет объединить массивы в более компактной форме. const arr1 = [1, 2];
const arr2 = [3, 4];
const combined = [...arr1, ...arr2]; // [1, 2, 3, 4]
Оба подхода работают для любого количества массивов. Выбор зависит от предпочтений и читаемости кода.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
git branch -m. Если ветка находится локально, выполняется следующая команда:
git branch -m old-branch-name new-branch-name
Если требуется переименовать текущую ветку, можно опустить старое имя:
git branch -m new-branch-name
Для переименования ветки на удаленном репозитории сначала удаляется старая ветка и затем пушится новая:
git push origin --delete old-branch-name
git push origin new-branch-name
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4
Для встраивания аудио на HTML-страницу используется тег
Пример использования:
Атрибут
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
<audio>. Этот тег позволяет воспроизводить аудиофайлы непосредственно в браузере. Пример использования:
<audio controls>
<source src="audio-file.mp3" type="audio/mpeg">
Ваш браузер не поддерживает элемент <code>audio</code>.
</audio>
Атрибут
controls добавляет элементы управления воспроизведением, такие как кнопки воспроизведения и паузы. Внутри тега <audio> можно использовать несколько <source> для указания разных форматов аудио, обеспечивая кроссбраузерную совместимость.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6