➡️ Утилита для веб-разработчика, которая объединяет JavaScript- и CSS-файлы в один файл, известный как "bundle".
🟢 При работе над крупными проектами возникает необходимость эффективно организовывать код.
🟢 Хранение всего кода огромного проекта в одном файле неудобно, а ручное разделение и последующая сборка также не оптимальны.
🟢 Для решения этой задачи используются инструменты сборки, такие как бандлеры, которые автоматизируют процесс преобразования исходного кода проекта в готовый к использованию код для продакшена.
⚡️ Sass — один из самых продвинутых и надежных CSS препроцессоров, пользующихся высокой популярностью среди опытных специалистов.
🟢 Возможность совместимости с различными версиями CSS позволит вам использовать любые CSS библиотеки в вашем проекте. 🟢 CSS препроцессоры, обладающие таким богатым функционалом, как Sass, являются редкостью. 🟢 Sass является одним из самых опытных CSS препроцессоров, который накопил множество знаний за свою долгую историю. 🟢 Удобство использования Sass фреймворков, таких как Bourbon, значительно облегчит жизнь разработчику. Мы также используем Bourbon в определенных выпусках Джедая верстки при работе с Sass. 🟢 Синтаксис Sass предлагает выбор между двумя вариантами: упрощенным (SASS) и более похожим на CSS (SCSS), чтобы каждый мог выбрать наиболее удобный.
⚡️Приложение для поиска фильмов с помощью React (с хуками) ⚡️
➡️Чему вы научитесь
➡️ Создавая данное приложение, вы улучшите навыки работы с React, использовав новые хуки API.
➡️ Проект включает в себя компоненты React, разнообразные хуки, взаимодействие с внешним API и стилизацию с помощью CSS.
➡️Стек технологий и особенности
🟢 React с хуками 🟢 create-react-app 🟢 JSX 🟢 CSS
Благодаря отсутствию классовых компонентов, эти проекты станут отличным введением в функциональное программирование с React и наверняка помогут вам улучшить свои навыки.
➡️ Этот метод вызывается прямо перед удалением компонента из DOM. Это важное место для выполнения задач по очистке, таких как остановка таймеров, отписка от событий или освобождение ресурсов для предотвращения утечек памяти.
⏺ TimerComponent класс инициализирует состояние seconds для отслеживания времени. В componentDidMount устанавливается таймер, а в componentWillUnmount он очищается. Таймер обновляет время каждую секунду. Компонент отображает прошедшее время. Очистка таймера в componentWillUnmount предотвращает утечки ресурсов.
➡️ Использование функции useState позволяет создать переменную state и функцию setState для управления ее значением.
Во время инициализации, state равно переданному значению initialState.
setState(newState);
➡️ Функция setState применяется для изменения значения состояния. При вызове функции с новым значением, React добавляет в очередь повторную отрисовку компонента.
При последующих обновлениях, значение state, полученное с помощью useState, отображает текущее состояние после всех обновлений.
Функциональные обновления
➡️ Если новое состояние зависит от предыдущего, можно передать функцию в setState, которая принимает предыдущее значение и возвращает новое. В примере с компонентом счетчика используются обе формы setState.
⚡️fullPage.js — это JavaScript-библиотека, которая используется для создания полноэкранных прокручивающихся веб-страниц.
Она позволяет создавать веб-страницы, где каждый экран представляет собой отдельный полноэкранный слайд, и пользователи могут переходить между этими слайдами путем прокрутки, нажатия стрелок или щелчков мыши.
➡️Основные возможности fullPage.js включают:
1️⃣Полноэкранная прокрутка: Контент отображается по одному слайду на экран.
2️⃣Навигация: Встроенная навигация по точкам или стрелкам, которая позволяет быстро переходить к нужному слайду.
3️⃣Мульти-секционные страницы: Возможность создания множества секций и слайдов внутри них.
4️⃣Анимации переходов: Поддержка различных эффектов переходов между слайдами.
5️⃣Адаптивность: Поддержка мобильных устройств и возможность адаптировать внешний вид под разные размеры экранов.
6️⃣Совместимость: Работа с большинством современных браузеров.
➡️Пример использования fullPage.js может выглядеть так:
⚡️Howler.js — это JavaScript-библиотека для работы с аудио в веб-приложениях. Она обеспечивает удобный API для воспроизведения звуков, что позволяет разработчикам легко добавлять аудиоэффекты и музыкальные фоны на свои веб-страницы.
🟣 Howler.js поддерживает все современные форматы аудио и предоставляет дополнительные возможности для управления звуками.
➡️Основные возможности:
1️⃣Кроссбраузерная поддержка: Работает в большинстве современных браузеров, обеспечивая совместимость с различными аудиоформатами (MP3, OGG, WAV, AAC и другими).
2️⃣Управление звуками: Воспроизведение, пауза, остановка, изменение громкости, регулировка скорости воспроизведения.
3️⃣Поддержка спрайтов: Возможность создания аудиоспрайтов, что позволяет хранить несколько звуков в одном файле и воспроизводить их по частям.
4️⃣Буферизация: Автоматическая загрузка и кэширование аудиофайлов для плавного воспроизведения.
5️⃣События: Поддержка событий, таких как начало воспроизведения, завершение, пауза и другие.
6️⃣Простая интеграция: Легкий API, который позволяет быстро интегрировать аудио в веб-приложения.
<script> // Создание объекта Howl для управления звуком var sound = new Howl({ src: ['path/to/sound.mp3', 'path/to/sound.ogg'], volume: 0.5, onplay: function() { console.log('Sound is playing'); }, onend: function() { console.log('Sound has ended'); } });
// Функции управления звуком function playSound() { sound.play(); }
function pauseSound() { sound.pause(); }
function stopSound() { sound.stop(); } </script> </body> </html>
🟣 Этот пример демонстрирует, как создать аудиообъект с помощью howler.js и управлять воспроизведением звука через кнопки.
🟣 Howler.js является мощным инструментом для добавления аудио в веб-приложения, предлагая множество функций для гибкого и удобного управления звуками.
⚡️Tamagui - это программное обеспечение с текстовым графическим пользовательским интерфейсом (TUI) для управления устройствами через командную строку, облегчая взаимодействие пользователя с техническими устройствами.
➡️Для установки используйте:
npm install tamagui @tamagui/config
➡️Включает в себя три компонента:
🟢@tamagui/core — является библиотекой стилей, расширяющей API стилей React Native с множеством функций из CSS без внешних зависимостей, кроме React.
🟢@tamagui/static — компилятор, который оптимизирует производительность.
🟢@tamagui — обширный универсальный набор компонентов.
// Загружаем изображение и создаем спрайт PIXI.Loader.shared.add('example.png').load((loader, resources) => { let sprite = new PIXI.Sprite(resources['example.png'].texture);
⚡️useLayoutEffect — это хук в React, который позволяет выполнять побочные эффекты синхронно после того, как все изменения DOM были внесены, но до того, как браузер обновит экран.
🔵 Это делает его полезным для операций, которые должны произойти до того, как пользователь увидит изменения.
▶️Сравнение с useEffect
Основное различие между useEffect и useLayoutEffect заключается во времени их выполнения:
🔘useEffect выполняется асинхронно после рендеринга и после того, как браузер обновил экран. 🔘useLayoutEffect выполняется синхронно сразу после всех изменений в DOM, но до того, как браузер нарисует экран.
▶️Когда использовать useLayoutEffect
Использование useLayoutEffect целесообразно в случаях, когда нужно:
🔘 Измерить размеры или позицию DOM-элементов до того, как браузер отрисует изменения. 🔘 Выполнить какие-либо операции, которые могут повлиять на верстку или стиль, и эти изменения должны быть учтены до отображения на экране.
▶️Пример использования useLayoutEffect
Рассмотрим пример, где мы хотим измерить ширину элемента div сразу после его рендеринга и отобразить эту ширину в элементе:
import React, { useLayoutEffect, useRef, useState } from 'react';
useLayoutEffect(() => { if (divRef.current) { setWidth(divRef.current.offsetWidth); } }, []);
return ( <div> <div ref={divRef} style={{ width: '50%' }}> Resize the window to change my width </div> <p>Div width: {width}px</p> </div> ); }
export default MeasureDiv;
⚠️В этом примере:
🔘 Мы используем useRef для получения ссылки на элемент div. 🔘 С помощью useLayoutEffect мы измеряем ширину элемента после его рендеринга, но до того, как браузер обновит экран. 🔘 Ширина сохраняется в состоянии с помощью useState и отображается в абзаце.
Этот подход гарантирует, что ширина элемента будет измерена до того, как пользователь увидит изменения на экране, что может быть критично для некоторых приложений, например, для анимаций или точных расчётов верстки.
▶️Важные моменты
🔘 Поскольку useLayoutEffect блокирует обновление экрана до завершения эффекта, использование его для длительных операций может привести к задержкам и ухудшению производительности.
🔘 Поэтому рекомендуется использовать useLayoutEffect только тогда, когда это действительно необходимо, а для всех остальных побочных эффектов использовать useEffect.
Bookmarks поможет вам ориентироваться в коде, легко и быстро перемещаясь между важными позициями. Также поддерживается набор команд выделения, позволяющий выделять строки с закладками и области между строками с закладками.