Million.js
Million.js - это минималистичный фреймворк на JavaScript, который эффективно работает с элементами DOM. В отличие от традиционных фреймворков, которые обновляют весь DOM при каждом изменении состояния.
Библиотека использует более детальный подход, обновляя только необходимые части DOM. Million.js также имеет свой компилятор, который автоматически оптимизирует компоненты React на сервере.
👉 @sWebDev
Million.js - это минималистичный фреймворк на JavaScript, который эффективно работает с элементами DOM. В отличие от традиционных фреймворков, которые обновляют весь DOM при каждом изменении состояния.
Библиотека использует более детальный подход, обновляя только необходимые части DOM. Million.js также имеет свой компилятор, который автоматически оптимизирует компоненты React на сервере.
👉 @sWebDev
👍5
Назначение action в хуке useFormState
Для чего используется атрибут
👉 @sWebDev
Для чего используется атрибут
action в хуке useFormState?👉 @sWebDev
👍3
Назначение action в хуке useFormState?
Anonymous Quiz
45%
Для передачи данных в action.
35%
Для определения дефолтного стейта формы.
20%
В данном хуке нет action.
👍2
Веб-скрапинг с Bright Data, Node.js и Puppeteer
Статья рассказывает о том, как использовать Bright Data для эффективного сбора данных с веб-сайтов с помощью Node.js. В статье рассматриваются следующие темы: Введение в веб-скрапинг, преимущества Bright Data, настройка Node.js и сбор данных с помощью Bright Data и Puppeteer.
👉 @sWebDev
Статья рассказывает о том, как использовать Bright Data для эффективного сбора данных с веб-сайтов с помощью Node.js. В статье рассматриваются следующие темы: Введение в веб-скрапинг, преимущества Bright Data, настройка Node.js и сбор данных с помощью Bright Data и Puppeteer.
👉 @sWebDev
👍3👎2
Бесплатный практический вебинар для всех возрастов: Профессия «Frontend-разработчик».
⏰ Когда: уже 14 марта в 19:00 по мск.
Вы узнаете о типичных рабочих задачах программиста и напишете мини-игру, которая работает прямо в браузере. Под капотом немного HTML+CSS и базовые конструкции JS.
Расскажем, что ждут работодатели от джунов, какие есть грейды во фронтенд-разработке и на какую зарплату рассчитывать в перспективе. Какие JS фреймворки учить: Vue, React, а может, Angular?
🎁 Всем, кто зарегистрировался — Карта компетенций начинающего Frontend-разработчика, а каждому участнику — Гайд «Как заговорить на сленге IT-специалистов».
⏰ Когда: уже 14 марта в 19:00 по мск.
Вы узнаете о типичных рабочих задачах программиста и напишете мини-игру, которая работает прямо в браузере. Под капотом немного HTML+CSS и базовые конструкции JS.
Расскажем, что ждут работодатели от джунов, какие есть грейды во фронтенд-разработке и на какую зарплату рассчитывать в перспективе. Какие JS фреймворки учить: Vue, React, а может, Angular?
🎁 Всем, кто зарегистрировался — Карта компетенций начинающего Frontend-разработчика, а каждому участнику — Гайд «Как заговорить на сленге IT-специалистов».
Оптимизация жизненного цикла компонентов
Подходит для:
1) Доступа к DOM-элементам.
2) Инициализации сторонних библиотек.
3) Выполнения кода, который должен быть выполнен после рендеринга.
Подходит для:
1) Синхронизации состояния компонента с DOM.
2) Обновления отображения в ответ на изменения данных.
3) Реагирования на изменения размеров окна.
Пример:
👉 @sWebDev
afterRender и afterNextRender - это два новых хука жизненного цикла, которые были добавлены в Angular 17. afterRender вызывается один раз после завершения рендеринга компонента.Подходит для:
1) Доступа к DOM-элементам.
2) Инициализации сторонних библиотек.
3) Выполнения кода, который должен быть выполнен после рендеринга.
afterNextRender вызывается после каждого цикла обнаружения изменений.Подходит для:
1) Синхронизации состояния компонента с DOM.
2) Обновления отображения в ответ на изменения данных.
3) Реагирования на изменения размеров окна.
afterRender и afterNextRender не вызываются при SSR (Server-Side Rendering).afterNextRender не гарантирует, что DOM будет стабильным.Пример:
export class MyComponent {
constructor() {}
ngAfterRender() {
console.log('Component has been rendered');
}
ngAfterNextRender() {
console.log('Component has been rendered and change detection has run');
}
}👉 @sWebDev
👍5
Packery
Библиотека Packery - это JavaScript-библиотека и jQuery-плагин, который позволяет создавать бесшовные и перетаскиваемые макеты. Она использует алгоритм bin-packing для заполнения пустых пробелов. Макеты Packery могут быть упорядочены интеллектуально или хаотично.
👉 @sWebDev
Библиотека Packery - это JavaScript-библиотека и jQuery-плагин, который позволяет создавать бесшовные и перетаскиваемые макеты. Она использует алгоритм bin-packing для заполнения пустых пробелов. Макеты Packery могут быть упорядочены интеллектуально или хаотично.
👉 @sWebDev
👍7
Как использовать forwardRef с generic компонентами
Статья рассказывает о том, как использовать
👉 @sWebDev
Статья рассказывает о том, как использовать
forwardRef с обобщенными компонентами в React и TypeScript. Объясняется, почему стандартная реализация forwardRef приводит к потере вывода типов для обобщенных компонентов, и предлагается решение, которое позволяет восстановить вывод типов с помощью переопределения forwardRef с другим типом👉 @sWebDev
👍4
FP.ts
FP.ts – это библиотека для функционального программирования (FP) на TypeScript. Она позволяет использовать популярные паттерны и абстракции, доступные в большинстве функциональных языков.
👉 @sWebDev
FP.ts – это библиотека для функционального программирования (FP) на TypeScript. Она позволяет использовать популярные паттерны и абстракции, доступные в большинстве функциональных языков.
👉 @sWebDev
👍4
Передача контекста в шаблоны
Как получить доступ к контексту, переданному в шаблон с помощью директивы
👉 @sWebDev
Как получить доступ к контексту, переданному в шаблон с помощью директивы
ngTemplateOutletContext?👉 @sWebDev
❤4
Как получить доступ к контексту, переданному в шаблон с помощью директивы ngTemplateOutletContext?
Anonymous Quiz
12%
С помощью директивы ngIf
17%
С помощью директивы ngFor
22%
С помощью переменной let-
49%
С помощью функции ngTemplateOutletContext
❤3
Материалы из этого канала дают на платных курсах
Frontend Portal — настоящий портал для тех кто хочет стать востребованным frontend-разработчиком. Полезные ресурсы, шпаргалки, разбор вопросов с собеседований, задачи, викторины и многое другое
👉 Присоединяйтесь к @FrontendPortal и станьте частью дружного frontend-комьюнити!
Frontend Portal — настоящий портал для тех кто хочет стать востребованным frontend-разработчиком. Полезные ресурсы, шпаргалки, разбор вопросов с собеседований, задачи, викторины и многое другое
👉 Присоединяйтесь к @FrontendPortal и станьте частью дружного frontend-комьюнити!
👍5
Сканирование и генерация QR-кода с помощью ZXing и Angular
Статья рассказывает о том, как использовать QR-коды в приложениях на Angular с помощью библиотеки ZXing.
👉 @sWebDev
Статья рассказывает о том, как использовать QR-коды в приложениях на Angular с помощью библиотеки ZXing.
👉 @sWebDev
👍3
Async Transitions: обновление без блокировки
Transition API в React позволяет плавно обновлять состояние без блокировки UI.
Как использовать:
1. Импортируйте
2. Создайте хук
3. Оберните изменение состояния в
Что происходит:
1.
2. Пока функция выполняется,
3. Когда функция завершается,
Пример:
👉 @sWebDev
Transition API в React позволяет плавно обновлять состояние без блокировки UI.
Как использовать:
1. Импортируйте
useTransition.2. Создайте хук
useTransition.3. Оберните изменение состояния в
startTransition.Что происходит:
1.
startTransition вызывает функцию асинхронно, позволяя отменить изменение.2. Пока функция выполняется,
isPending = true.3. Когда функция завершается,
isPending = false.Пример:
function TabContainer() {
const [isPending, startTransition] = useTransition();
const [tab, setTab] = useState('about');
function selectTab(nextTab) {
startTransition(() => {
setTab(nextTab);
});
}
return (
<div>
<p>Current tab: {tab}</p>
<button onClick={() => selectTab('home')}>Home</button>
<button onClick={() => selectTab('about')}>About</button>
{isPending && <p>Loading...</p>}
</div>
);
}👉 @sWebDev
👍4