Тонкая настройка директивы ngModel
Пример использования:
В этом примере значение модели будет обновляться только при потере фокуса с поля ввода. обновление модели будет задерживаться на 500 миллисекунд.
👉 @sWebDev
ngModelOptions
– это объект, который позволяет настроить различные параметры директивы ngModel
.updateOn
: определяет, когда происходит обновление модели (при blur, change или input).debounceTime
: задержка обновления модели (в миллисекундах).emitModelToViewChange
: позволяет синхронизировать изменения модели с представлением.modelToViewConverter
: функция для преобразования значения модели перед отображением в представлении.viewToModelConverter
: функция для преобразования значения представления перед сохранением в модели.Пример использования:
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
})
export class AppComponent {
model = '';
constructor() {}
ngOnInit() {
this.model = '初始值';
}
}
<input [(ngModel)]="model" ngModelOptions="{updateOn: 'blur', debounceTime: 500}">
В этом примере значение модели будет обновляться только при потере фокуса с поля ввода. обновление модели будет задерживаться на 500 миллисекунд.
👉 @sWebDev
Управление состоянием в Angular: какие есть варианты?
Статья рассказывает о различных вариантах управления состоянием в Angular приложениях. Автор объясняет, что такое состояние, зачем им нужно управлять, и какие библиотеки и подходы существуют для этого.
👉 @sWebDev
Статья рассказывает о различных вариантах управления состоянием в Angular приложениях. Автор объясняет, что такое состояние, зачем им нужно управлять, и какие библиотеки и подходы существуют для этого.
👉 @sWebDev
Reatom
Reatom - это библиотека управления состоянием для React, которая является альтернативой RTK, Zustand и React Query.
Бибилиотека позволяет создавать глобальное состояние, которое можно легко использовать и изменять в любых компонентах с помощью хуков или декораторов. Также поддерживаются асинхронные действия, селекторы, подписки, отладки и другие возможности.
👉 @sWebDev
Reatom - это библиотека управления состоянием для React, которая является альтернативой RTK, Zustand и React Query.
Бибилиотека позволяет создавать глобальное состояние, которое можно легко использовать и изменять в любых компонентах с помощью хуков или декораторов. Также поддерживаются асинхронные действия, селекторы, подписки, отладки и другие возможности.
👉 @sWebDev
Создание навигационной панели с помощью Angular 17 и Tailwind CSS
Гайд по созданию навигационной панели с помощью Angular 17 и Tailwind CSS.
👉 @sWebDev
Гайд по созданию навигационной панели с помощью Angular 17 и Tailwind CSS.
👉 @sWebDev
Million.js
Million.js - это минималистичный фреймворк на JavaScript, который эффективно работает с элементами DOM. В отличие от традиционных фреймворков, которые обновляют весь DOM при каждом изменении состояния.
Библиотека использует более детальный подход, обновляя только необходимые части DOM. Million.js также имеет свой компилятор, который автоматически оптимизирует компоненты React на сервере.
👉 @sWebDev
Million.js - это минималистичный фреймворк на JavaScript, который эффективно работает с элементами DOM. В отличие от традиционных фреймворков, которые обновляют весь DOM при каждом изменении состояния.
Библиотека использует более детальный подход, обновляя только необходимые части DOM. Million.js также имеет свой компилятор, который автоматически оптимизирует компоненты React на сервере.
👉 @sWebDev
Назначение action в хуке useFormState
Для чего используется атрибут
👉 @sWebDev
Для чего используется атрибут
action
в хуке useFormState
?👉 @sWebDev
Назначение action в хуке useFormState?
Anonymous Quiz
45%
Для передачи данных в action.
35%
Для определения дефолтного стейта формы.
20%
В данном хуке нет action.
Веб-скрапинг с 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
Бесплатный практический вебинар для всех возрастов: Профессия «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
Packery
Библиотека Packery - это JavaScript-библиотека и jQuery-плагин, который позволяет создавать бесшовные и перетаскиваемые макеты. Она использует алгоритм bin-packing для заполнения пустых пробелов. Макеты Packery могут быть упорядочены интеллектуально или хаотично.
👉 @sWebDev
Библиотека Packery - это JavaScript-библиотека и jQuery-плагин, который позволяет создавать бесшовные и перетаскиваемые макеты. Она использует алгоритм bin-packing для заполнения пустых пробелов. Макеты Packery могут быть упорядочены интеллектуально или хаотично.
👉 @sWebDev
Как использовать forwardRef с generic компонентами
Статья рассказывает о том, как использовать
👉 @sWebDev
Статья рассказывает о том, как использовать
forwardRef
с обобщенными компонентами в React и TypeScript. Объясняется, почему стандартная реализация forwardRef
приводит к потере вывода типов для обобщенных компонентов, и предлагается решение, которое позволяет восстановить вывод типов с помощью переопределения forwardRef
с другим типом👉 @sWebDev
FP.ts
FP.ts – это библиотека для функционального программирования (FP) на TypeScript. Она позволяет использовать популярные паттерны и абстракции, доступные в большинстве функциональных языков.
👉 @sWebDev
FP.ts – это библиотека для функционального программирования (FP) на TypeScript. Она позволяет использовать популярные паттерны и абстракции, доступные в большинстве функциональных языков.
👉 @sWebDev