• В чем смысл использовать хуки?

    @dmitry-toster
    Были классы, были HOC

    Они и сейчас есть. Касательно HOC: в виду того, что мы не можем подключить компонент напрямую к стору, приходится делать доп.обертку mapStateToProps. Тем самым над компонентом нарастает еще один компонент который связан со складом. Потом еще одна обертка withStore, withRouter и тд. В дебаггере начинаешь уже видеть большую вложенность компонентов и по мере роста приложения это уже становится антипаттерном. Это все плохо работает с точки зрения минификации и производительности из-за больших деревьев вложенности.
    компоненты разделены на Container/Component или Умный и Глупый

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

    Как правило все сторонние подключаемые библиотеки уже содержат в себе хуки из коробки, а те что еще нет, будут поддерживать в следующих версиях. Тоже не вижу здесь проблем.
    Далее философия Redux, "не диспатчить actions напрямую", все через actions creator и тп и тд, сейчас нам просто предоставляется dispatch из useDispatch()

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

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

    Основные 2 причины: отказ от HOC и эмуляция методов жизненного цикла у функциональных компонентов.
    Ответ написан
    Комментировать
  • Как поставить высоту блока div в зависимость от ширины?

    Зачем скрипты? Можно ведь обычным css'ом обойтись:
    jsfiddle.net/qso14y3k

    Один минус - 2 дополнительные обёртки для каждого блока. Но это не смертельно. Фокус этот работает по стандартам, так что работать должен везде.
    Также эта техника входит в toolkit, который написан ребятами, которые написали Singularity.
    Ответ написан
    2 комментария
  • Как добавить вычисляемое поле в выборку eloquent в Laravel?

    Denormalization
    @Denormalization
    Сделать метод у User:
    public function getNameAttribute()
    {
        return $this->attributes['f_name'] . $this->attributes['f_name'];
    }


    И потом просто вызывать:
    $project->user->name;
    Ответ написан
    2 комментария
  • Как копировать объект в JavaScript?

    @mikhailrojo
    Через Object.assign()
    const old = {mi: 1, ti: 2} // копируемый объект
    const new = Object.asign({}, old);// присваиваем пустому объекту свойства old
    new ! == old;// true
    Ответ написан
    3 комментария
  • Как стать продвинутым сайтоклепателем (формоклепателем) и отправиться на каторгу, чтобы пахать за говяжий дошик и оплачивать сарай?

    @alejandro68
    Кризис среднего возраста теперь уже у школьников и студентов???
    Однако
    Ответ написан
    Комментировать