@react_js

Страница 4149 из 5115
Дмитрий
11.06.2018
15:13:20
как получить?
1) Поставить 2) Заюзать 3) ??? 4) ?

from
11.06.2018
15:13:20
А почему чудовищно? Разве использование recompose не подразумевает подобное?)

Dzmitry
11.06.2018
15:13:25
думал на сайте

Google
Дмитрий
11.06.2018
15:14:08
А почему чудовищно? Разве использование recompose не подразумевает подобное?)
Подразумевает и это не то чтобы круто когда ты делаешь потенциально сильно вложенный компонент. Типичный пример когда лучше бы руками всё

Чем так

recompose fatigue

from
11.06.2018
15:15:45
Подразумевает и это не то чтобы круто когда ты делаешь потенциально сильно вложенный компонент. Типичный пример когда лучше бы руками всё
"типичный пример"-то где? В ошибке консоли?) Как надо руководствоваться тем, стоит использовать в конкретном случае рекомпоуз или нет? "Так, я импортнул седьмой хок, значит стираю всё и пишу без рекомпоуза"?

По-моему эта вложенность не особо отличается от вложенности, скажем, хтмл-тэгов С разницей только, что если в самом глубком <span /> сделать опечатку, то в консоли не будет подобной картины. А могла бы быть :)

Дмитрий
11.06.2018
15:19:43
Я без понятия) Можешь исследовать эту проблему подробнее, думаю все будут благодарны)

from
11.06.2018
15:20:15
Полагаю, покажи вам ту же самую вложенность, только в реакт-девтулзах, где не красненький цвет ошибки, а нейтральный, говорили бы "какая крутая композиция"

Дмитрий
11.06.2018
15:20:50
У меня сейчас например дерево компонентов в развернутом виде касается правой стороны экрана дважды

Если не больше

Не могу сказать что я в восторге ?

from
11.06.2018
15:21:33
Я без понятия) Можешь исследовать эту проблему подробнее, думаю все будут благодарны)
какую именно?) Я той либой не пользуюсь и столько вложений у себя не делаю (не приходилось). Просто не понимаю, почему это разу плохо. Любая ошибка в консоли выглядит нерадостно, это-то понятно)

Дмитрий
11.06.2018
15:22:01
Ну просто мало приятного же такой трейс разбирать

Реально ангуляр вспоминается))

Google
from
11.06.2018
15:22:40
согласен, но это же не секрет какой-то, что с рекомпоузом он таким будет)

Дмитрий
11.06.2018
15:23:14
Есть предположение что можно сделать по нормальному и выйдет даже проще)

Можно примерно прикинуть что делает этот код по названиям))))) на скрине

Вот я поглядел и говорю, что это похоже на неудачное использование

from
11.06.2018
15:30:50
Есть предположение что можно сделать по нормальному и выйдет даже проще)
"по-нормальному" это ты имеешь в виду более удачно использовать рекомпоуз или имеешь в виду написать без него вообще?

Дмитрий
11.06.2018
15:31:48
По нормальному — это когда не хочется выкладывать скрин со словами "смарите какой трэш)))"

Всё остальное детали))

from
11.06.2018
15:32:52
ну это таксе аргумент, когда-то выкладывали скрины с jsx'ом с теми же словами

по-моему в рекомпоузе кстати есть какой-то хок для оверрайда displayName только насколько я помню он тоже не такой уж удобный) Но кажется с этой проблемой как раз борется

Дмитрий
11.06.2018
15:36:58
Виртуализация в том числе для того, чтобы не обсчитывать 100500 строк разом, а только те что умещаются на экране

Но я бы оптимизировал сначала коннект строк, пригодится всё равно

from
11.06.2018
15:38:39
Но я бы оптимизировал сначала коннект строк, пригодится всё равно
да коннект как будто не такой уж тяжелый там попробовал без него, выиграл вроде где-то может 50-60мс До 16мс всё равно далеко

Дмитрий
11.06.2018
15:40:06
Google
Дмитрий
11.06.2018
15:40:31
Ну например

У redux и react-redux есть пределы, за которые они не прыгнут никак

Сергей
11.06.2018
15:42:46
Вообще есть вероятность что можно подключать меньше, не каждую строку
Я вообще не очень понимаю зачем каждую строчку коннектить

Дмитрий
11.06.2018
15:43:06
Так проще зачастую

from
11.06.2018
15:43:10
Я вообще не очень понимаю зачем каждую строчку коннектить
ну как же, чтобы не ререндерить весь список

Хотя с виртуализацией как раз может быть это уже некритично)

Сергей
11.06.2018
15:43:30
from
11.06.2018
15:44:42
А у тебя точно ридакс?)
Эм, редакс-то редакс, только какая разница если подключать весь список, а не по строчке, то при обновлении одного элемента ререндер всего списка вызывается Обычная же ситуация

Дмитрий
11.06.2018
15:45:22
Редакс пособия запугали людей, не нужно бояться ререндеров, если у вас при этом не меняются данные

Так работает реакт

from
11.06.2018
15:45:39
так, началось :)

Дмитрий
11.06.2018
15:45:54
Одинаковые пропсы создают одинаковые деревья и diff будет в ноль

Сергей
11.06.2018
15:46:10
Редакс пособия запугали людей, не нужно бояться ререндеров, если у вас при этом не меняются данные
Я как-то поймал интересный кейс)) когда уменьшив количество коннектов списка до 1 увеличил скорость ререндера почти вдвое

Дмитрий
11.06.2018
15:46:59
так, началось :)
Ну я серьезно, думаешь просто так авторы реакта поддерживают идею про render props? Именно потому что всё все равно считается в 0

from
11.06.2018
15:47:31
спасибо за экскурс) но это всё понятно, я же вообще не об этом спрашивал-то Как раз недавно половину таблиц в приложении переписали, чтобы не подключать элементы отдельно

Дмитрий
11.06.2018
15:47:52
Я просто тебе уже ответил как бы

Я как-то поймал интересный кейс)) когда уменьшив количество коннектов списка до 1 увеличил скорость ререндера почти вдвое
Это может быть, да. react-redux работает с расчётом на то, что люди не умеют юзать реакт и в проекте полное безумие

from
11.06.2018
15:49:41
Я просто тебе уже ответил как бы
Да, я понял, вы поддерживаете идею с виртуализацией Вот и хорошо, попробую-погляжу

Сергей
11.06.2018
15:50:07
Это может быть, да. react-redux работает с расчётом на то, что люди не умеют юзать реакт и в проекте полное безумие
Когда это поймал написал свой коннект, а потом отрефачил до уменьшения количества

Дмитрий
11.06.2018
15:50:45
Я так в итоге сначала форкнул а потом выпилил редух ¯\_(ツ)_/¯

Google
Дмитрий
11.06.2018
15:58:49
Кстати, а как у тебя с производительностью кучи коннектов?
effector-react полагается на эффективность context api, а сама либа и вне коннекта всегда старается дропнуть апдейт если видит что он ничего не меняет

Дмитрий
11.06.2018
15:59:49
Конешн) Старый прям принципиально нигде не хочу

Сергей
11.06.2018
16:01:17
Конешн) Старый прям принципиально нигде не хочу
А у тебя же в девтулзах два компонента на один Коннект?

Один это консумер, второй это собственно тот который рендерит консумера

Дмитрий
11.06.2018
16:05:05
А у тебя же в девтулзах два компонента на один Коннект?
Блин, щас перепроверил, не, мы убрали context api)

Admin
ERROR: S client not available

Сергей
11.06.2018
16:05:16
Вообще без?

Дмитрий
11.06.2018
16:05:35
Да, consumer как отдельный компонент, а в нём рендер проп

@goodmind

VS JS
11.06.2018
16:05:59
кто-то знает можно инпут из material-ui задебаунсить(debounce) как то?

andretshurotshka?❄️кде
11.06.2018
16:08:56
там просто setState

контекст не умеет провайдить из чайлдов, и то этот апи на крайний случай

должно консьюмера хватать

Сергей
11.06.2018
16:09:52
То есть эта штука глобальная

Дмитрий
11.06.2018
16:09:56
effector-react кстати совсем небольшой, в нём меньше килобайта в итоге https://github.com/zerobias/effector/blob/develop/src/react/createStoreConsumer.js#L11

Google
Сергей
11.06.2018
16:09:59
По структуре не работает

Дмитрий
11.06.2018
16:10:06
Дмитрий
11.06.2018
16:10:14
Ну лан))

andretshurotshka?❄️кде
11.06.2018
16:10:19
по структуре?

Alex
11.06.2018
16:12:27
effector-react полагается на эффективность context api, а сама либа и вне коннекта всегда старается дропнуть апдейт если видит что он ничего не меняет
я правильно понял, твой компонент старается исключить апдейт в SCU? а как ты определяешь что данные внутри не изменились?

Дмитрий
11.06.2018
16:15:07
Да вроде с таким мотивом и убрали

я правильно понял, твой компонент старается исключить апдейт в SCU? а как ты определяешь что данные внутри не изменились?
Нет, никакого scu, effector просто управляет данными и поэтому понимает, что поменялось и как, это эффективнее чем обычный подход потому что знает структуру стейта и рассчитывает на это

Dmitry
11.06.2018
16:18:20
если простыми словами у тебя цепочка из селекторов где на каждой цепочке через шаллоу иквал отсекается какой-то апдейт

Alex
11.06.2018
16:18:40
мне предстоит сделать подписку и обновление полей, в том числе на другие данные из стейта, я так же управляю изменениями и знаю что поменялось, пока только не придумал как реализовать подписку

Дмитрий
11.06.2018
16:20:01
Там тебя ждёт сюрприз

Это сложнее чем всё остальное тобой описанное вместе взятое)

Я тож думал что ща быстро затащу)

Alex
11.06.2018
16:20:44
типа, если поле подписано только на своё значение, то всё просто, а если будут перекрёстные подписки, становится сложнее + рост вычислений не линейный из за прохода типа (кол. изменений) => (кол. полей) & (кол. подписок)

Dmitry
11.06.2018
16:21:06
Это сложнее чем всё остальное тобой описанное вместе взятое)
так а в чем проблема просто на каждом уровне шеллоу иквалом сравнивать

поменялось или не ?

Alex
11.06.2018
16:21:29
не, я уже прикинул, скорее всего придётся два массива ссылок хранить, что на что подписано в ту и другую сторону, чтобы быстро пробегать по подпискам

Дмитрий
11.06.2018
16:22:11
так а в чем проблема просто на каждом уровне шеллоу иквалом сравнивать
Мы ж обсуждали это, я не хочу шеллоу, это слишком жирно и не нужно

Alex
11.06.2018
16:22:18
но тут есть ещё нюанс, у меня подписка выглядить как путь до изменившегося поля, т.е. изменилось user.id, подписка может быть user а может быть user.id и обе должны будут обновиться

Dmitry
11.06.2018
16:22:22
ну если без шеллоу то да

Страница 4149 из 5115