Artyom
03.11.2017
08:01:35
это да
Nikita
03.11.2017
08:01:46
Artyom
03.11.2017
08:01:47
Только зачем он все это прокидывает в пропсы >_>
Andrew
03.11.2017
08:01:48
В редакс форм, куча нюансов. В то время как в формике хочешь руками все прокинуть? Вперёд.
Google
Artyom
03.11.2017
08:02:21
Выглядит малех страшно. Я бы хотел описывать схему, в которой указывать что нужно (через тот же options)
Nikita
03.11.2017
08:02:36
Andrew
03.11.2017
08:02:36
Не хочешь, вот я тебе написал field который Formik юзая Children заметит и сам затолкнет все нужное через React.cloneElement
Nikita
03.11.2017
08:02:53
Они даже не удосужились использовать пьюр компонент
Чет пока не нашел ни одного аргумента в пользу перформанса этой либы
Andrew
03.11.2017
08:03:38
kana
03.11.2017
08:03:48
Nikita
03.11.2017
08:03:53
Ну, справедливости ради - хранить локально в стейте - не плохая идея
Andrew
03.11.2017
08:04:11
А если не хочешь использовать их Field то просто пользуйся обычным инпутом
Дело не хитрое.
Nikita
03.11.2017
08:04:28
В идеале нужна либа, которая будет локально в стейте хранить значения + коннекторы как у реакт-редакс
Max
03.11.2017
08:04:38
Велосипед
Google
Andrew
03.11.2017
08:04:46
Есть выбор в любую сторону. С магией, и без нее и так далее.
Roman
03.11.2017
08:04:47
Nikita
03.11.2017
08:05:12
Andrew
03.11.2017
08:05:36
Max
03.11.2017
08:05:39
В смысле у меня велосипед есит
Со тейтом и коннектами
Andrew
03.11.2017
08:06:01
Nikita
03.11.2017
08:06:04
Max
03.11.2017
08:06:37
пруфы?)
https://github.com/soofty/react-shared-state
Ридми кривое, надо понятнее сделать.
Andrew
03.11.2017
08:06:50
Nikita
03.11.2017
08:07:18
Andrew
03.11.2017
08:07:52
Просто на 50% медленнее все слать через редакс. Это давно известный факт и использовать для вещей которые требуют 0 задержки - редакс не вариант.
Evgeniy
03.11.2017
08:08:00
Проблемы с производетльностью на форме с 30ю полями? really?
Nikita
03.11.2017
08:08:27
Да вопрос концептуальный. Форма с N полями
Andrew
03.11.2017
08:08:32
Max
03.11.2017
08:08:46
Andrew
03.11.2017
08:08:49
Google
Nikita
03.11.2017
08:09:02
Может, хранить в редакс сторе - не лучшее решение. Но нужна имплементация коннекторов из реакт-редакс, которые позволят обновлять единичные компоненты при изменении стейта формы
Сейчас реакт-редакс это худо-бедно делает
Max
03.11.2017
08:09:40
Andrew
03.11.2017
08:09:53
Nikita
03.11.2017
08:11:33
Max
03.11.2017
08:11:46
Да, у себя гоняем
Вот думаю убрать редакс совсем потихоньку
Andrew
03.11.2017
08:12:40
Evgeniy
03.11.2017
08:19:16
У велосипеда он тоже есть. точнее, его легко имплементировать.
Andrew
03.11.2017
08:22:51
+ куча всяких хелперов, типа массива филдов
Артур
03.11.2017
08:33:59
Какой профит хранить состояние формы в сторе. Я не в теме
Andrew
03.11.2017
08:34:59
Max
03.11.2017
08:36:38
Andrew
03.11.2017
08:38:57
Andrew
03.11.2017
08:40:18
Кстати. Тут ни у кого нету случаем бенчмарков касающихся JSX-no-bind? Потому как я лютый защитник этого правила. Чтобы при ререндерах новые функции не создавались и не вызывали не нужных ререндеров, что даже рекомпозом не нужно исключать onЧтото и так далее.
Ибо логично, что лучше не создавать, и что лучше не байндить внутри рендера и других лайфсайкл методов, но вот какой это импакт на кол-во памяти и перформанс дает в конкретных цифрах, я не проверял.
И очень многие говорят MEH в ответ, мол мы не имеем проблем и продолжают фигачить анонимки внутри рендера, а у меня горит.
Кирилл
03.11.2017
08:43:24
Andrew
03.11.2017
08:45:02
Надо всего-то 3 параметра передать для того что бы вообще любой компонент заработал как филд в rf. Вот и все, любые слайдеры и тд за 2 минуты делаются филдами. Про перформанс да, на он чейндж лучше ничего не вешать
Проблема в том, что это надо почитать в доке. И что есть масса нюансов ибо огромная хреновина эти формы. А формик хорош тем, что даже без чтения там все понятно. Если не понятно, то ридми и 30 секунд времени ответят на вопрос.
С редакс формами все так не очевидно.
Плюс команды очень ленивые переписывать на новую мажорную версию например.
В итоге когда ты действительно heavy на формы, у тебя такой каплинг идет на него, что переписать все абстракции часто взывает кучу проблем и не вещь не простая.
А если вдруг человек писавший все это ушел из компании. Или вовсе вся команда, то как жить?
Я в такой ситуации оказался и спустя пару месяцев мы со страхом юзали абстракции, понимая, что мы в дерьме. Что версия вроде бы как только 3 или 4, когда уже давно вроде 8. И что доки на 3 и 4 версию говно, и что мы в дерьме снова и снова. В итоге к счастью проект вернули клиенту ибо он был компании не выгоден особо, но когда бы встал вопрос апгрейда, мы бы охренели.
Будь это формик или самописный костыль на локальном сторе?
Было бы все куда проще. Разбираешься в нем, покрываешь тестами если он нет, переписываешь к чертям собачьим сохраняя апи до зеленых тестов - profit!
Google
Andrew
03.11.2017
08:47:19
А там умники еще завязались на его экшены и написали саги и так далее. В итоге АД
ОЧЕНЬ много ИНДИРЕКЦИИ.
Обычные формы рулят, и формик рулит так же. Но лучше покопипастить, чем делать слишком хитрые абстракции.
И лучше чтобы кишки были ближе к рукам. А не уходили далеко и глубоко как это с Редакс Формой.
Andrew
03.11.2017
08:49:25
RF это такой же инструмент как формик, им надо уметь пользоваться
Там в доках вроде написано, что не стоит из вне диспатчить внутренние экшены RF
Andrew
03.11.2017
08:50:38
Ну тоесть, формик или самописное что-то покрытое тестами лучше и менее страшное и монструозное. Это же форму написать. Это же не сложно.
В общем, я резко против Redux-forms и считаю, что если они есть, то можно жить, но тащить их на новые проекты - глупо.
Artyom
03.11.2017
08:58:42
Очень много текста, я не готов это в чате воспринимать, напиши уже статью)
Andrew
03.11.2017
09:00:10
Andrew
03.11.2017
09:04:48
Идеального кейса боюсь не существует. Ибо я не вижу сложности написать визард обычными компонентами :) Это будет легко и просто и читабельно :)
Yuriy
03.11.2017
09:14:15
кстати recompose только из за удобностей выезжает или там есть какой то профит с производительностю? Толком не разбирался, может кто в двух словах скажет
если допустим сровнить компонент чистую функцию с хоками или чем там от рекомповза, и тот же класс от React.Component, может статейка есть на этот счет
Дмитрий
03.11.2017
09:20:34
ну и да, мелкие функции как обычно - проще тестировать, проще дебажить, проще работать
и прочие утилиты тоже полезны, со стримами работать одно удовольствие
Andrew
03.11.2017
09:22:40
Ну всякие pure и пр. Насколько знаю никакой разницы нет при сравнении с обычным. Так что это просто удобно, и кратко. Любимые это бренч, only update for keys, и с контекстом работать через них топчик.
Yuriy
03.11.2017
09:23:34
ага ясно, спасибо
Andrew
03.11.2017
09:24:01
Но тут тоже лучше не злоупотреблять ибо глубокое дерево это больно реакту вроде.
А хоки как раз его углубляют серьёзно так. И потом читать девтулзы невозможно :)
Поэтому я не очень люблю Rebass ибо там он композицию делает безумную. И читать потом невозможно, одни анонимные styled врапперы.
Google
Andrew
03.11.2017
09:25:50
И просто юзаю styled-system от того же автора когда мне надо.
Noise to signal ratio тогда куда меньше.
Ivan
03.11.2017
09:28:06
Yuriy
03.11.2017
09:28:09
у меня на работе старались каждый компонент сделать стейтлесс и обернуть по надобности в всякие withProps от рекомпуза, красиво но не понятно что с производительностю по этому спросил)
Сергей
03.11.2017
09:30:50
Написано же. Полифилл нужен
Ivan
03.11.2017
09:32:22
полифила разве нет внутри компонента
при том выскакивает на свежих браузерах относительно
Александр
03.11.2017
09:35:40
Верно ли я думаю. Что если есть данные, которые могут изменяться - их нужно хранить в стейте?
К примеру список, в который можно что-то добавить\удалить\изменить. Нужно хранить в стейте?
Andrew
03.11.2017
09:42:08
Александр
03.11.2017
09:42:35
Andrew
03.11.2017
09:43:22
И поднимать state наверх. По началу так, когда начнёшь понимать как все работает и так далее, нет ничего страшного иметь локальный стейт чуть глубже по дереву. Чтобы делать какие-то, тогглы чекбоксов, контроль инпутов и пр.
Там секция официальной доки есть про это. Почитай.
Александр
03.11.2017
09:44:27
Andrew
03.11.2017
09:45:11
Там все умно сделано, если пропс будет тот же, ничего не будет перерисовано.
Так или иначе, если ты начинаешь только, до этих моментов и оптимизаций ты дойдёшь потом. Пока не парься :)
nick
03.11.2017
09:46:26
Всем привет, что скажите о saga в проекте?
Александр
03.11.2017
09:46:34
Andrew
03.11.2017
09:49:11
Очень мощная штука, но нужно быть аккуратным.