Telegram Web Link
🤔 Что такое dispatch?

В контексте Frontend-разработки, dispatch — это метод, который отправляет (диспатчит) событие или действие. В зависимости от технологии dispatch может использоваться в Redux, EventTarget или React.

🟠`dispatch` в Redux
В Redux dispatch(action) используется для отправки (диспатча) действий (actions) в хранилище (store).
import { useDispatch } from 'react-redux';

const Counter = () => {
const dispatch = useDispatch();

return (
<button onClick={() => dispatch({ type: 'INCREMENT' })}>
Увеличить
</button>
);
};


🟠`dispatchEvent` в JavaScript (EventTarget API)
В нативном JavaScript метод dispatchEvent() используется для генерации пользовательских событий на DOM-элементах.
const button = document.querySelector("button");

// Создаём событие
const event = new Event("myCustomEvent");

// Добавляем слушатель событий
button.addEventListener("myCustomEvent", () => {
console.log("Событие вызвано!");
});

// Диспатчим событие
button.dispatchEvent(event); // Выведет: "Событие вызвано!"


🟠`dispatch` в React (useReducer)
В React-хуке useReducer dispatch используется для изменения состояния компонента.
import { useReducer } from 'react';

const reducer = (state, action) => {
switch (action.type) {
case 'increment':
return { count: state.count + 1 };
default:
return state;
}
};

const Counter = () => {
const [state, dispatch] = useReducer(reducer, { count: 0 });

return (
<button onClick={() => dispatch({ type: 'increment' })}>
{state.count}
</button>
);
};


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как сделать разные типы отчётов: CSV, HTML, PDF?

Для генерации отчётов в разных форматах используют разные подходы:
- CSV — формируется из данных в виде строк, разделённых запятыми или точками с запятой, обычно это просто текстовая сериализация табличных данных.
- HTML — отчёт можно рендерить через шаблонизаторы или прямо в DOM, если речь про frontend.
- PDF — создаётся с помощью библиотек (например, jsPDF, Puppeteer в JS, ReportLab в Python), которые преобразуют HTML или структурированные данные в документ.
Приложение может предоставлять пользователю возможность выбора формата, а контроллер — вызывать соответствующий генератор.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 К какой категории относятся промисы?

Промисы (Promise) относятся к асинхронным объектам, реализующим паттерн "Promise". Они позволяют работать с отложенными и асинхронными операциями (например, сетевые запросы, таймеры, операции с файлами).

Категория: Асинхронные программные конструкции (Async Objects / Async Patterns)
Тип: Объект (Promise Object)*
Используются в: Асинхронном программировании (Async/Await, then/catch)

🚩Почему промисы – асинхронная конструкция?

Промисы не выполняются сразу, а ждут завершения операции, после чего выполняют код в .then() или .catch().
const fetchData = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Данные загружены!"); // Успех
}, 2000);
});

fetchData.then(data => console.log(data));


🚩Promise – это не просто колбэк

До появления Promise в JavaScript использовались колбэки, но они приводили к "callback hell".
function fetchData(callback) {
setTimeout(() => {
callback("Данные загружены!");
}, 2000);
}

fetchData(data => console.log(data));


Решение с Promise
fetchData()
.then(data => console.log(data))
.catch(error => console.error(error));


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как работает браузер?

Браузер выполняет четыре основные задачи:
1. Запрос к серверу: отправляет HTTP/HTTPS-запрос для получения веб-страницы.
2. Парсинг данных: создаёт DOM из HTML и CSSOM из CSS.
3. Рендеринг: объединяет DOM и CSSOM в Render Tree, выполняет раскладку и отрисовку.
4. JavaScript: интерпретируется для динамических изменений и взаимодействий.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Материалы для разработчиков, которые помогут получить оффер от 200тыс до 350тыс₽ и успешной пройти испытательный срок.

[Гайд] Как упаковать резюме разработчику, чтобы звали на собеседования?

[Скрипт] Что говорить на интервью, чтобы каждый второй собес заканчивался оффером 200к+?

[Статья] Откровения СТО.. самый короткий путь разработчика к большим деньгам

[Разбор] Где искать валютную удаленку? Учимся работать с LinkedIn


Канал ведет СТО с 13-ти летним стажем.

Поэтому в текстах куча тонкостей, как готовиться и проходить собесы в 2025 году.


Подписывайтесь и читайте закреп с бонусами.
🤔 Можешь ли пояснить разницу между progressive enhancement и graceful degradation?

Оба подхода используются в веб-разработке для обеспечения доступности и совместимости веб-приложений на разных устройствах и браузерах.

🚩Progressive Enhancement (Прогрессивное улучшение)

Сначала создаём простую, но рабочую версию сайта, которая работает на всех устройствах и браузерах. Затем добавляем улучшения (CSS-анимации, сложный JavaScript), которые работают только в современных браузерах.

🚩Graceful Degradation (Постепенное упрощение)

Сначала создаём полнофункциональную версию с последними технологиями. Затем добавляем fallback'и (упрощённые версии) для старых браузеров.
Используем CSS Grid, но добавляем @supports для fallback'а на Flexbox
Приложение на React, но показываем простой HTML, если JavaScript отключён.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/07/01 11:06:41
Back to Top
HTML Embed Code: