Библиотека фронтендера | Frontend, JS, JavaScript, React.js, Angular.js, Vue.js
22.6K subscribers
2.38K photos
144 videos
38 files
4.78K links
Все самое полезное для фронтенда в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/77178ed4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5b6884689c2151c820bb4
加入频道
Кастомный Range Input, который выглядит одинаково во всех браузерах

https://proglib.io/w/97aea3ed

#css
👍3
Тренды JavaScript в 2022 году

Первый месяц 2022 года почти завершился, но впереди еще 11. Есть время угнаться за трендами.

https://proglib.io/w/d6b73b58

#tools
👎9👍2
Создание компонентной дизайн-системы UI

Зачем нужна и как создать сбалансированную компонентную дизайн-систему: https://proglib.io/w/e6bd53b5

#interface
👍1👎1
🧔📈 Повышение до тимлида: дорожная карта

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

https://proglib.io/sh/nQHKU2AdCm
👍1
Запуск анимации при скролле

Откладывание старта анимации до момента, когда пользователь до нее доскроллит, - распространенный и эффектный прием. В статье разбирается его реализация с использованием IntersectionObserver API (и фоллбэком для старых браузеров).

https://proglib.io/w/2bbaf368

#interface #animation
👍2
🧩 5 интересных головоломок и задач, чтобы отвлечься от рутины и немного пошевелить извилинами (выпуск 15)

В нашей еженедельной подборке мы подготовили 5 новых интересных алгоритмических, логических и математических задачек для отдыха и прокачки мозгов.

https://proglib.io/sh/ak1X027h5f
👍2👎1
Как освоить фронтенд-разработку в 2022 году: дорожная карта

https://proglib.io/w/9cd67451
👍3
Почему получаются плохие абстракции и как этого избежать?

🚀3 февраля, в этот четверг, в 19.00 МСК Евгений Тюменцев, профессионально занимающийся разработкой многопоточных кросс-платформенных приложений на С++, научит вас строить абстракции – один из ключевых навыков для программиста.

За один час вы узнаете:

– Что такое абстракция?
– Причины правок кода
– Как выделять абстракции
– Свойства абстракций, полезные при разработке

Познакомьтесь с новым решением построения архитектуры приложений и инструментами для планирования ее будущей системы.

Регистрация и подробности по ссылке.
👍3
☕️ 10 вопросов с собеседований по JavaScript

В этой статье мы рассмотрим 10 вопросов с собеседований по JavaScript и примеры ответов на них, которые помогут вам подготовиться к интервью.

https://proglib.io/sh/RwOMqzJSHh

#interview
👍5💩1
😃 Взять отпуск или уволиться: как вернуть мотивацию к работе

Праздники, зимний авитаминоз и хандра, дедлайны и отвлекающие факторы на удаленке – все это негативно влияет на нашу мотивацию. В этой статье мы поговорим о том, как вернуть рабочий настрой.

https://proglib.io/sh/YWweDCztL4
👍3
Тренды веб-разработки в 2022 году

Большой эфир HTML Academy: https://proglib.io/w/fd533e8e

#video
👍3
Как победить scroll в javascript

Разбор реальных кейсов: https://proglib.io/w/0f75a3cb
🔥5
Как ваш браузер обрабатывает прикосновения к экрану телефона (js touch events)

https://proglib.io/w/993fd72a
👍4
Как мы ускоряли комментарии Хабра

Опыт Хабра по оптимизации большого количества комментариев в рамках SPA-приложения: https://proglib.io/w/66f639ab

#optimisation
👍4👎3
Правильный способ заставить Vue перендерить компонент

Иногда бывает так, что реактивности Vue не хватает, и вам нужно перерендерить компонент. Или вам нужно сбросить DOM и начать сначала. Как сделать это правильно?

https://proglib.io/w/a2d4bac0

#vue
Введение в CSS Cascade Layers

Управление каскадом стилей- задача не из легких. Скоро в CSS появятся каскадные слои - смогут ли они решить эту проблему?

https://proglib.io/w/9f43b951

#css
👍1
Оптимизация видео по размеру и качеству

Добавление видео в приложение может повысить вовлеченность и удовлетворенность клиентов. Но при проблемах с воспроизведением обычно происходит прямо противоположное. Разбираемся, как этого избежать: https://proglib.io/w/877f475b

#performance
👍4
Forwarded from React Junior
3 паттерна для создания React-компонентов

Статья (англ.): https://blog.openreplay.com/3-react-component-design-patterns-you-should-know-about

Несмотря на то, что React не навязывает разработчикам определенную структуру проекта или методику создания компонентов, есть некоторые популярные паттерны, которые используются во многих проектах. Вероятно, они действительно хороши, и их стоит, как минимум, рассмотреть. Статья описывает три таких паттерна.

Презентационные компоненты и компоненты-контейнеры

Презентационные компоненты отвечают только за внешний вид. Они получают данные через пропсы, выводят их и никак не зависят от других компонентов. Очень часто презентационные компоненты не имеют состояния, но также могут отслеживать какое-то состояние, связанное с интерфейсом (например, текст в поле ввода). Примеры презентационных компонентов: список элементов, поле ввода.

Компоненты-контейнеры обеспечивают логику приложения. У них есть состояние, они используют различные методы жизненного цикла и содержат в себе презентационные компоненты для вывода данных. Именно в контейнерных компонентах происходит запрос и обработка данных.

Этот паттерн позволяет отделить логику от представления и повысить реюзабельность компонентов, например, в одном и том же контейнере можно использовать разные презентационные компоненты.

Провайдер

Паттерн Провайдер решает проблему многоуровневого проброса пропсов по цепочке компонентов. Вместо того, чтобы передавать данные вниз, через незаинтересованные компоненты, мы можем создать единое хранилище данных и связываться с ним только там, где это действительно необходимо.

Пример Провайдера в React - это контекст. Мы создаем объект контекста с нужными данными (например, цветовой темой приложения), оборачиваем все приложение в провайдер этого контекста и в нужных местах связываемся с ним с помощью хука useContext, или свойства contextType, или Context.Consumer.

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

Составные компоненты

Компоненты в React могут работать в симбиозе, разделяя общее состояние. Например, компонент списка (Menu) и компоненты отдельных элементов списка (MenuItem). Вынесение элементов в отдельные компоненты может быть удобно с точки зрения передачи пропсов и структуризации кода.

Но у Menu и MenuItem есть общее состояние - активный элемент, оно должно храниться в компоненте Menu, значит, его нужно передать во все вложенные компоненты MenuItem. Об этом должен позаботиться сам компонент списка (например, с помощью React Context), тогда мы получим составной компонент (compound component).

Реализовав этот паттерн мы сможем удобно оформлять список, выделяя каждый элемент в MenuItem, но при этом не придется заботиться о передаче состояния элементам, так как это происходит под капотом.

#паттерны #ссылки
👍10