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
console.log(). Этот метод принимает любое количество аргументов и выводит их в консоль. Также доступны другие методы, такие как console.error(), console.warn() и console.info(), которые используются для вывода сообщений об ошибках, предупреждений и информационных сообщений соответственно.
console.log("Это обычное сообщение"); // Выводит сообщение в консоль
console.error("Это сообщение об ошибке"); // Выводит сообщение об ошибке
console.warn("Это предупреждение"); // Выводит предупреждение
console.info("Это информационное сообщение"); // Выводит информационное сообщение
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
--имя-переменной и используются через функцию var().
:root {
--primary-color: blue; /* Объявление переменной */
}
.element {
color: var(--primary-color); /* Использование переменной */
}
Переменные можно переопределять для конкретных элементов или медиа-запросов, что делает их гибкими для управления стилями.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
useRef используется для создания изменяемого объекта, который сохраняет своё значение между рендерами компонента. Он часто применяется для доступа к DOM-элементам или хранения значений, которые не должны вызывать повторный рендер при изменении.
const inputRef = useRef(null); // Создание ref
useEffect(() => {
inputRef.current.focus(); // Доступ к DOM-элементу
}, []);
return <input ref={inputRef} />; // Привязка ref к элементу
useRef также полезен для хранения предыдущих значений или любых других данных, которые не должны влиять на обновление компонента.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3