Frontender Libs - обзор библиотек JS / CSS
8.49K subscribers
2K photos
727 videos
1 file
234 links
Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront

Менеджер по рекламе: @Spiral_Yuri

Купить рекламу: https://telega.in/c/sWebDev
Download Telegram
Доступное объяснение.

👉 @sWebDev | #юмор
👍147
Создание кастомных валидаторов с ValidatorFn

ValidatorFn — это функция, которая принимает AbstractControl (например, FormControl) и возвращает null, если данные валидны, или объект с ошибкой, если нет.

Пример кастомного валидатора, который проверяет, начинается ли значение с определенной буквы:
import { AbstractControl, ValidatorFn } from '@angular/forms';

export function startsWithLetterValidator(letter: string): ValidatorFn {
return (control: AbstractControl): { [key: string]: any } | null => {
const startsWithLetter = control.value?.startsWith(letter);
return startsWithLetter ? null : { startsWithLetter: { value: control.value } };
};
}

Применение валидатора:

import { FormBuilder, Validators } from '@angular/forms';
import { startsWithLetterValidator } from './validators/starts-with-letter.validator';

this.form = this.fb.group({
name: ['', [Validators.required, startsWithLetterValidator('A')]]
});

Валидатор проверяет, что значение поля name начинается с буквы "A".

👉 @sWebDev
👍4
Media is too big
VIEW IN TELEGRAM
Random Three.js

Генератор коробки на Three.js.

👉 @sWebDev
👍6
Курам на смех.

👉 @sWebDev | #юмор
🔥5🤔1
Gun.js

Gun.js — это библиотека JavaScript, предназначенная для создания децентрализованных графовых баз данных, поддерживающих работу в реальном времени. Gun.js используется для разработки приложений, которые могут синхронизироваться между разными устройствами без необходимости наличия центрального сервера, что делает её полезной для создания P2P-приложений и оффлайн-функциональности.

👉 @sWebDev
👍3
Media is too big
VIEW IN TELEGRAM
Fire shader

Настраиваемая анимация камина на Three.js.

👉 @sWebDev
👍3
Глубокое погружение в формы в современном React

Статья подробно рассматривает создание форм в современном React без использования сторонних библиотек. Автор описывает основные методы работы с формами, такие как использование POST запросов, управление состоянием формы, асинхронная обработка данных, и оптимистичное обновление интерфейса.

👉 @sWebDev
👍4
Media is too big
VIEW IN TELEGRAM
Knotwork

Абстрактная интерактивная анимация на Three.js.

👉 @sWebDev
👍3
Rivets.js

Rivets.js – это библиотека для привязки данных (data-binding) в JavaScript, которая позволяет легко связывать данные с HTML элементами. Она работает по принципу MVVM (Model-View-ViewModel) и обеспечивает двустороннюю привязку данных.

👉 @sWebDev
👍3
Работа с ComponentFactoryResolver в Angular

Для чего используется ComponentFactoryResolver в Angular?

Если забыли, то вернитесь к посту от 19.08.2024.

👉 @sWebDev
👍2
Жизненно?

❤️ - Да.

👍 - Нет.

👉 @sWebDev | #юмор
19👎6
Оптимизация производительности в Angular

ChangeDetectionStrategy.OnPush работает по принципу, что изменения в компоненте должны происходить только в следующих случаях:

1. Изменение входного свойства (@Input).
2. Событие внутри компонента (например, клик по кнопке).
3. Использование асинхронного пайпа для подписки на Observable или Promise.

Для использования этой стратегии, в декораторе компонента нужно задать свойство changeDetection:
import { Component, ChangeDetectionStrategy, Input } from '@angular/core';

@Component({
selector: 'app-user',
template: `
<div>
<p>{{ user.name }}</p>
</div>
`,
changeDetection: ChangeDetectionStrategy.OnPush
})
export class UserComponent {
@Input() user: { name: string };
}

В примере компонент UserComponent будет проверять изменения только тогда, когда свойство user изменяется. Это значит, что если родительский компонент обновляется, но свойство user остается неизменным, UserComponent не будет проходить процесс проверки изменений.

👉 @sWebDev
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Alarm Clock

Трехмерная анимация будильника на Three.JS.

👉 @sWebDev
👍2
Коллективизация.

👉 @sWebDev | #юмор
8👍2👎2
Jdenticon

Jdenticon — это JavaScript-библиотека для генерации уникальных идентиконов (графических аватаров), основанных на хэшах данных. Она создает изображения в формате SVG, которые можно использовать как уникальные иконки для пользователей, файлов или других объектов, где требуется визуальная идентификация. Это особенно полезно в тех случаях, когда нужно быстро создать аватары для пользователей на основе их идентификаторов (например, email или ID), не прибегая к хранению изображений.

👉 @sWebDev
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Intro grid section

Анимированная галерея на GSAP.

👉 @sWebDev
👍53
Google Translate может сломать React приложение

Статья обсуждает проблему, связанную с использованием Google Translate в приложениях на React, которая вызывает сбои. Автор описывает, как именно Google Translate конфликтует с React-компонентами, и предлагает возможные решения для устранения этих сбоев.

👉 @sWebDev
🔥3
Media is too big
VIEW IN TELEGRAM
Pattern

Интерактивная абстрактная анимация на GSAP.

👉 @sWebDev
👍3🔥1
Micromodal.js

MicroModal.js — это легковесная JavaScript-библиотека для создания модальных окон. Она очень проста в использовании и предназначена для того, чтобы модальные окна были доступны для всех пользователей, включая тех, кто использует клавиатуру и экранные читалки. Поддерживает как обычные модальные окна, так и многостраничные с навигацией между ними. MicroModal.js минималистична по дизайну, что позволяет легко кастомизировать её под нужды конкретного проекта.

👉 @sWebDev
👍5
Работа с ViewContainerRef в Angular

Какой декоратор используется для доступа к ViewContainerRef в компоненте?

Если забыли, то вернитесь к посту от 26.08.2024.

👉 @sWebDev
👍2