Size: a a a

JavaScript.Ninja

2021 April 19

OJ

Oleg Junior in JavaScript.Ninja
я об этом и пишу
источник

VK

Vladimir Klimov in JavaScript.Ninja
Я не вижу тут коствльности
Это библиотека
Она, как и любая абстракция, диктует какие-то свои правила работы с ней
В каком фреймворке лучше?
источник

VK

Vladimir Klimov in JavaScript.Ninja
Может в ембере, я его не тыкал😁
источник

AM

Alex Makarov in JavaScript.Ninja
Вы наверное очень молоды и усвоение еще одной новой концепции Вам дается легко. А когда их в голове уже прилично, ты тщательно взвешиваешь каждую новую прежде чем ее в голову впихнуть, и думаешь: а чем она собственно лучше старых. Потому что новые сияющие штучки появляются регулярно, а список штук которые надо заботать в свободное время давно переполнился. Для меня "еще одна незнакомая концепция" - это явный очевидный минус. И аргумент "хей, да они просто неосиляторы" я не принимаю, хотя признаться когда-то сам часто выдвигал.

Также обучая коллег я для себя обнаружил что апи конкретных библиотек поддается усвоению куда легче чем более тонкие концепции вроде цены абстракций, разделения ответственности и тд. Поэтому я обычно беру людей которые как я считаю ближе к пониманию этих концепций. Даже если они про реакт только название слышали.
Поэтому реакт "до хуков" был для меня прям идеальным фреймворком. Маленький порог входа, мало жестких правил, основные правила довольно очевидны и легко объяснимы, при этом возможность запилить что-то сложное когда надо.
источник

AI

Arthur Irgashev in JavaScript.Ninja
к сожалению, многие не знают, как ним правильно пользоваться
источник

AI

Arthur Irgashev in JavaScript.Ninja
и начинают городить кучу мемоизаций, зависимых стейтов и прочей ерунды, и кроме багов с усложнением кодовой базы это ничего не даёт
источник

VK

Vladimir Klimov in JavaScript.Ninja
Не хотел, чтобы мои слова выглядели как "та они просто неосиляторы", я так не считаю
Я просто для себя вижу плюсы хуков
Плюс писать на реакте без них сейчас не очень удобно помимо других аргументов (библиотеки делают апи с учётом хуков а том числе)
И если вы выбираете реакт, странно выбирать классы и отказываться изучать хуки
Плюс у реакта в принципе небольшое апи
источник

AM

Alex Makarov in JavaScript.Ninja
Я не отказываюсь. Я плачу, жую кактус и поглядываю одним глазом на ангуляр. Как плакал и жевал редакс когда-то.
про "библиотеки делают апи с учетом хуков" - это еще один минус в карму хукам. Кое-кто не делает. Кое-кто не сделает никогда. Кое-кто сделал так что лучше не делали бы. Кое-кто еще в процессе.
источник

VK

Vladimir Klimov in JavaScript.Ninja
Но я не веду статистики и никого кроме себя не обучал, так что может аргумент про сложность апи имеет место быть
источник

AI

Arthur Irgashev in JavaScript.Ninja
я, например, часто люблю спрашивать, как бы люди оптимизировали ре-рендеры в таком коде (вопрос с подвохом, на самом деле)
function Btn() {
  const [s, c] = useState(0);

  return [
     <button onClick={() => c(e => e + 1)}>inc</button>,
     <button onClick={() => fetch().then(() => c(0)), [s]) }>send</button>
  ]
}
источник

AM

Alex Makarov in JavaScript.Ninja
Это апи реакта самого небольшое, но реакт в принципе не фреймворк а разноцветный паззл "собери себе фреймворк".
источник

AI

Arthur Irgashev in JavaScript.Ninja
и по их ответам сразу становится понятно, насколько хорошо они разбираются в хуках и реакте в целом :)
источник

OJ

Oleg Junior in JavaScript.Ninja
опытный реакт разработчик
источник

II

Ilya Izilanov in JavaScript.Ninja
подвох в том что это не нужно оптимизировать?)
источник

AI

Arthur Irgashev in JavaScript.Ninja
ну да
источник

AI

Arthur Irgashev in JavaScript.Ninja
но некоторые люди начинали, чото там мемоизировали, потом смотрели в профайлер и недоумевали, почему у них не работает
источник

II

Ilya Izilanov in JavaScript.Ninja
сама по себе мемоизация это не ошибка
источник

AI

Arthur Irgashev in JavaScript.Ninja
да, просто они неправильно её применяли
источник

II

Ilya Izilanov in JavaScript.Ninja
тут нет смысла мемоизировать потому что функции передаются только в дом ноды
источник

AI

Arthur Irgashev in JavaScript.Ninja
и делали, например, вот так

const cb = useCallback(() => {}, [state])
источник