Когда нужно отсортировать массив объектов сразу по нескольким полям — вместо вложенных if можно сделать так:
const sortBy = (arr, keys) => [...arr].sort((a, b) =>
keys.reduce((res, k) => res || (a[k] > b[k] ? 1 : a[k] < b[k] ? -1 : 0), 0)
);
Где пригодится:
#readme #js
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🌚3🔥2❤1
Бывает: сделал коммит слишком рано — что-то забыл или добавил лишнее. Удалять изменения не хочется, а переписывать руками — долго.
Решение:
git reset --soft HEAD~1
— последний коммит исчезнет из истории,
— все изменения вернутся в staged,
— можно поправить и закоммитить заново.
#readme #git
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍6🔥1🥱1
Подозреваете рост памяти после навигации? Включите детектор «болтливых» ре-рендеров — часто именно они топят heap.
Решение:
npm i -D @welldone-software/why-did-you-render
// src/index.jsx
import React from 'react'
import wdyr from '@welldone-software/why-did-you-render'
wdyr(React, { trackAllPureComponents: true }) // dev only
(точечно: MyWidget.whyDidYouRender = true)
— Логи в консоли с причинами ре-рендера (diff пропсов/стейта),
— Быстрый поиск «шумных» компонентов: несмемоизированные пропсы, коллбеки без useCallback, эффекты без cleanup.
#readme #react
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1👏1
Когда обработчик срабатывает слишком часто (scroll, resize, mousemove) — он грузит браузер и рендер.
— Индикатор прогресса при скролле;
— Drag&drop;
— Частые API-запросы (real-time).
#readme #js
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Иногда ветку удаляют по ошибке — локально или даже на удалённом репозитории. А потом всплывает, что там был нужный код или незавершённая работа. Поднимать заново неудобно, особенно если не помнишь последний коммит.
Решение:
git reflog
git checkout -b my-branch <commit_hash>
— git reflog покажет историю всех действий, даже удалённых веток,
— можно найти нужный commit_hash,
— checkout -b создаст ветку заново с того же коммита.
#readme #git
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤3🔥1
Чтобы не теряться в потоке постов, мы собрали удобную навигацию по тегам. Всё нужное — в пару кликов:
#readme — код-сниппеты, CSS-трюки, JS one-liners, команды Git/CLI
#hotfix — реальные баги и проблемы с объяснением, как их исправить
#blueprint — high-level концепции и паттерны
#under_hood — разбираем, что происходит внутри фреймворков и браузера
#stack — обзоры библиотек, плагинов, инструментов
#release_digest — все важное за неделю/месяц в одном месте: новые версии фреймворков, релизы библиотек, ссылки и краткие описания
#code_challenge — интерактивные задачи с разбором на следующий день
#code_battle — столкновение технологий или подходов
#pixel_pause— мемы, юмор и забавные истории из фронтенд-жизни
#career_merge — советы по резюме, soft skills, вопросы с собеседований, обсуждение зарплат
#ux_review — изучаем интерфейсы и UX известных сайтов и приложений
#read_watch — подборки полезных материалов: статьи, конференции, GitHub, книги
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3