Вы заметили, что компонент повторно рендерится при каждом изменении родителя, хотя его пропсы остаются теми же.
В коде используется функциональный компонент, передаётся onClick, определённый внутри родителя как анонимная функция.
Как можно избежать лишнего рендера этого компонента?
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔4
Сначала всё как в сказке: рендер за миллисекунду, бандл ноль, DX на десятку. А на деле — баги, костыли и ощущение, что ты не код пишешь, а фреймворк отлаживаешь за его авторов.
Вопрос от подписчика:
«Пробовал Solid — вроде быстрый, всё летает, но как только начинаешь что-то серьёзное делать, всё сыпется. Devtools нестабильные, баги вылазят на ровном месте. С Qwik вообще не понял, как с этим жить — ощущение, что дебажу не код, а магию. Marko — прикольный, но куда его вообще девать, кто его реально юзает? Есть тут кто юзал это всё в проде и не пожалел? Или всё это — больше про доклады, чем про реальные проекты?»
P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔4❤2
Веб-разработка требует не только технических навыков, но и умения эффективно коммуницировать, управлять задачами и работать с клиентами. Но на самом деле это так важно?
— Командная синергия: четкая коммуникация помогает быстрее понять требования и избежать ошибок.
— Гибкость в сроках: грамотное общение с клиентом помогает находить компромиссы по времени и функциональности.
— Междисциплинарное сотрудничество: понимание особенностей других команд улучшает совместную работу и ускоряет процесс.
— Фокус на коде: иногда важно просто погружаться в работу и не отвлекаться на обсуждения.
— Качество кода важнее: когда решение принято, главное — не общение, а правильная реализация.
Поделитесь мнением в комментариях!
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔4
Вы получаете баг-репорт:
«Кнопка ‘Продолжить’ не нажимается в Safari на iOS, хотя в других браузерах всё работает.»
Проверяете верстку и видите, что кнопка абсолютно позиционирована внутри div, у которого z-index: 10. Поверх неё расположен прозрачный div (opacity: 0, z-index: 20, pointer-events: auto).
Что с наибольшей вероятностью мешает клику по кнопке
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔8
Slack, Telegram, Discord — рабочие чаты стали центром всего: задачи, баги, апдейты, мемы. Удобно… пока не превращается в постоянный шум и расфокус.
— Быстро решить вопрос без созвонов
— Видно, кто чем занят
— Меньше митингов, больше живого контекста
— Держит команду в тонусе
— Поток отвлечений не прекращается
— Важное тонет в болтовне
— Нарушает фокус и deep work
— Появляется тревожка «а вдруг я что-то пропустил»
Чаты работают, когда в них есть правила: меньше @all, больше тредов, без лишнего шума — и никто не сходит с ума.
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6🤔2
🧪 Feature-флаги во фронте
В проекте нужно включать/отключать экспериментальные фичи для разных пользователей. Вы решаете внедрить систему feature flag’ов.
Рассматриваются такие варианты:
➰ Получение флагов с сервера
➰ Чтение из .env
➰ Флаги на этапе билда
➰ Рендеринг на сервере с разными конфигурациями
Что обязательно нужно учесть при выборе способа❓
🐸 Библиотека фронтендера
#междусобойчик
В проекте нужно включать/отключать экспериментальные фичи для разных пользователей. Вы решаете внедрить систему feature flag’ов.
Рассматриваются такие варианты:
Что обязательно нужно учесть при выборе способа
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👾2
This media is not supported in your browser
VIEW IN TELEGRAM
Работа с дизайнерами — это всегда вызов, когда их креативные идеи выходят за рамки привычного.
Вопрос от подписчика:
«Однажды дизайнер настоял на том, чтобы кнопки в интерфейсе были в стиле старых приложений Windows 95 — с анимациями и даже с мигающими кнопками. «Старый стиль», «кнопки, которые моргают», — все это нужно было сделать с помощью CSS. Конечно, такой запрос вызвал у меня вопросы и у всей команды, но в итоге мы смогли воссоздать эту атмосферу, только с использованием современных технологий.»
Поделитесь своими историями в комментариях
P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7👾1
🧩 Компоненты или все в одном
Когда разрабатываете интерфейс, всегда возникает вопрос: стоит ли разделять его на маленькие, атомарные компоненты или проще собрать всё в одном?
Каждый подход имеет свои плюсы и минусы, и важно выбрать тот, который подходит именно для вашего проекта.
✅ Преимущества разделения на компоненты:
— Маленькие компоненты легко переиспользуются, что упрощает поддержку и расширение проекта.
— Компоненты легче тестировать и изменять, что делает код более гибким и читаемым.
— Когда каждый работает над своим компонентом, это упрощает взаимодействие в команде.
⛔️ Почему всё в одном тоже имеет смысл:
— В небольших проектах бывает проще не заморачиваться на создание множества компонентов, а просто сделать один большой.
— Иногда большое количество маленьких компонентов может повлиять на производительность, особенно в крупных приложениях.
— Когда всё в одном компоненте, проще контролировать логику и избежать излишней абстракции.
Что для вас удобнее: дробить интерфейс на множество маленьких компонентов или работать с одним большим?
Поделитесь в комментариях!✏️
🐸 Библиотека фронтендера
#междусобойчик
Когда разрабатываете интерфейс, всегда возникает вопрос: стоит ли разделять его на маленькие, атомарные компоненты или проще собрать всё в одном?
Каждый подход имеет свои плюсы и минусы, и важно выбрать тот, который подходит именно для вашего проекта.
— Маленькие компоненты легко переиспользуются, что упрощает поддержку и расширение проекта.
— Компоненты легче тестировать и изменять, что делает код более гибким и читаемым.
— Когда каждый работает над своим компонентом, это упрощает взаимодействие в команде.
— В небольших проектах бывает проще не заморачиваться на создание множества компонентов, а просто сделать один большой.
— Иногда большое количество маленьких компонентов может повлиять на производительность, особенно в крупных приложениях.
— Когда всё в одном компоненте, проще контролировать логику и избежать излишней абстракции.
Что для вас удобнее: дробить интерфейс на множество маленьких компонентов или работать с одним большим?
Поделитесь в комментариях!
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔8❤4👍1
Вы создаёте SPA для управления задачами. У каждой задачи есть id, title и status. Удаление реализовано так:
await fetch(`/api/tasks/${id}`, { method: 'DELETE' });
Далее замечаете следующую проблему: после клика по «Удалить» задача исчезает из интерфейса, но при ошибке сервера (например, 500) остаётся в базе.
Пользователь думает, что задача удалена, но при обновлении страницы она возвращается
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👾5👍2🥱2
Наш подписчик работал над крупным корпоративным SPA на React с использованием Emotion для стилизации компонентов. В какой-то момент приложение стало заметно «тормозить» после нескольких переключений между разделами:
«Заглянув в DevTools, увидел, что <head> заполняется дублирующимися <style>-тегами. Оказалось, я каждый раз создавал новый Emotion-cache при рендере, и старые стили не удалялись — вечером перенёс провайдер кеша в корень приложения, и лаги исчезли.»
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔4❤2👾1
В вашем приложении есть список из 1000+ элементов, который подгружается на страницу сразу. Пользователь жалуется на низкую производительность и долгую загрузку страницы.
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3😁2👍1🥰1🤔1
Бывает, что локально и на тестовом стенде всё идеально, а вот в продакшене — баг, который воспроизводится у одного процента пользователей. И, конечно, ни логов, ни воспроизводимости.
Вопрос от подписчика:
«Недавно словили кейс: приложение периодически зависало у пользователей в Южной Америке. Логи — пустые, трейсей нет, на стендах всё стабильно. Подозрения на сеть и какой-то специфичный браузер. Но проверить напрямую — никак. Как вы в таких случаях находите причину и воспроизводите баги?»
P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🥰6🔥3👏1🤔1
Выбирать между фрилансом и офисной работой — как решать, что важнее: свобода или безопасность. Оба пути учат, развивают и приносят деньги… но по-разному.
— Гибкий график, проекты на вкус
— Быстро прокачиваешь навыки
— Доход выше при умелом подходе
— Каждый день новые вызовы
— Стабильная зарплата и соцпакет
— Менторство и карьерный рост
— Процессы уже налажены
— Работа в команде
Фриланс и офис не конкурируют, а показывают разные пути развития. Главное — понять, что важнее именно вам.
А вы что выбрали бы: свободу фриланса или стабильность в найме
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉9👍6❤4🔥3👏2
Вы реализуете drag & drop для задач с сохранением порядка через поле order (например, 1, 2, 3…).
После нескольких быстрых перестановок (10+), список отображается неправильно — некоторые задачи «прыгают» на старые позиции при обновлении.
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🌚1
Приложение получает уведомления по WebSocket. Пользователи жалуются, что после переподключения к интернету они не видят часть уведомлений.
Что скорее всего не реализовано
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔7
У каждого фронтендера был момент: билд зелёный, все unit-тесты проходят, а на проде кнопка «Купить» не работает. Или наоборот — e2e гоняются часами, падают от любого чиха, а баг кроется в двух строках функции.
⚡️ e2e
— Проверяют продукт глазами пользователя
— Сразу видно, что реально сломалось
— Цепляют баги, мимо которых пройдут юнит-тесты
⚡️ Unit
— Легко писать и поддерживать
— Ловят мелкие баги в логике
— Дают уверенность при рефакторинге
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔4❤3
Приложение на Next.js отрендерено на сервере. На клиенте после загрузки React «гидратирует» DOM. Вы замечаете ошибку:
“Warning: Text content did not match. Server: ‘100’ Client: ‘101’”.
Что это означает
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚5💯3
🧩 Скрытый баг в списке
На тесте замечено:
— При удалении элемента данные «съезжают» — значения в инпутах не совпадают с
— Иногда при редактировании одного поля меняется значение в другом.
❓ В чём настоящая проблема? Отвечайте правильным эмодзи👋
🐸 Библиотека фронтендера
#междусобойчик
{items.map((item, index) => (
<input
key={index}
defaultValue={item.name}
/>
))}
На тесте замечено:
— При удалении элемента данные «съезжают» — значения в инпутах не совпадают с
item.name.
— Иногда при редактировании одного поля меняется значение в другом.
❓ В чём настоящая проблема? Отвечайте правильным эмодзи
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥81🥱10❤2🤩2🌚2
🧩 Ловушка оптимизации
На тесте заметили:
— При 3000 заказах список подлагивает, даже после добавления виртуализации.
— Профайлер показывает сотни повторных ререндеров OrderCard, хотя данные не меняются.
❓ В чём настоящая проблема? Отмечайте правильный эмодзи 👋
🐸 Библиотека фронтендера
#междусобойчик
{orders.map(order => (
<OrderCard key={order.id} data={order} />
))}
На тесте заметили:
— При 3000 заказах список подлагивает, даже после добавления виртуализации.
— Профайлер показывает сотни повторных ререндеров OrderCard, хотя данные не меняются.
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥49🌚25🤩7❤4💯1
🗿 Незаметные ререндеры
— Даже если filters не меняются, при любом апдейте родителя все Item снова ререндерятся.
❓ Почему так происходит?
🐸 Библиотека фронтендера
#междусобойчик
const FiltersContext = createContext({ filters: {} });
function App({ filters, items }) {
return (
<FiltersContext.Provider value={{ filters }}>
{items.map(i => <Item key={i.id} />)}
</FiltersContext.Provider>
);
}
— Даже если filters не меняются, при любом апдейте родителя все Item снова ререндерятся.
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚19❤2🔥1