
Vladimir
25.01.2017
20:27:51

Alexander
25.01.2017
21:13:28
почему из fetch делают отдельный компонент? то есть
class Fetch extends Component и т.д. вместо того чтобы делать fetch в ComponentDidMount ?

Дмитрий
25.01.2017
21:14:15
Странный кейс какой то
И правда, зачем

Google

Dmitry ?
25.01.2017
21:15:08
Это называется React головного мозга

Arseniy
25.01.2017
21:15:33
переписал квартиру на реакт, называется.

Дмитрий
25.01.2017
21:15:38
Хотя ладно, лол, у меня у самого менеджер загрузок в виде компонента в одном проекте
Но я это хотя бы обосновать могу))

Pavel
25.01.2017
21:17:12
Почему из роутера делают компонент

Alexander
25.01.2017
21:25:00

Dmitrii
25.01.2017
21:25:08

Дмитрий
25.01.2017
21:31:35
обоснуй, если не сложно
Компонент реагирует на действия юзера и при определенных данных в редаксе, автоматически начинает загрузку множества файлов. Маунтится и анмаунтится вместе со страницей, не используя componentDidMount, общается с редаксом, выполняет запросы и диспатчит результаты, являясь при этом чистой функцией.
Для отладки довольно сложного алгоритма подргузки данных с сервера удобней иметь именно такую штуку, допускаю, что потом надо будет это переписать менее упоротым способом

Alexander
25.01.2017
21:34:49
вот кстати пример
https://github.com/kentcdodds/react-workshop/blob/master/src/exercises-final/11-render-callback.js

Дмитрий
25.01.2017
21:36:36
Ну чтото похожее, походу

Andrew
25.01.2017
22:16:53

Дмитрий
25.01.2017
22:22:14
Соответсвенно, в коде просто вставляем <DownloadAssistant />

Google

Andrew
25.01.2017
22:23:05
ты рамду вместо лодаша гоняешь?

Дмитрий
25.01.2017
22:23:38
Я ей уже пол чата наверное задолбал ?
Да, гоняю, ramda ftw \0 \0

Andrew
25.01.2017
22:23:55
а по бенчам она лодашу не уступает?
я где-то встречал вроде что лодаш андерскора ложит на лопатки в этом плане

Дмитрий
25.01.2017
22:24:45
Андерскор естественно кладёт, потому что это его преемник, гораздо более сильно оптимизированный
Андерскор в итоге в лодаш и влили
А вообще, тут такое дело, смотря что бенчмаркать. Попугаям op/s я предпочитаю бенчмарк времени на написание и поддержку
И тут у рамды множество преимуществ)

Andrew
25.01.2017
22:26:32
для меня пока вновинку все это :) в код твой смотрю и вижу фигу. надо будет взмедитнуть на досуге :) у меня аналогичная задача предстоит на проекте в обозримом будущем, так-что придется решать так или иначе

Дмитрий
25.01.2017
22:27:54
Ну тут вполне тривиальный код, просто надо помнить про каррирование и point free))
А вот фигу можно увидеть вот здесь ?
https://github.com/goodmind/treact/blob/avatars/src/app/helpers/state.ts
Реально ту мач, всё никак руки не дойдут написать по нормальному

Andrew
25.01.2017
22:29:10
слушай, а ты долго вообще шел к подобному коду?

Pavel
25.01.2017
22:30:05
Двоякое впечатление, в одном чате 40$ час, в другом въезжаешь в каррирование

Дмитрий
25.01.2017
22:30:43

Andrew
25.01.2017
22:31:24

Дмитрий
25.01.2017
22:31:33

Andrew
25.01.2017
22:34:48
Двоякое впечатление, в одном чате 40$ час, в другом въезжаешь в каррирование
я полтора года назад упарывался на jQuery и PHP в процедурном стиле и жизнь была прекрасна, пока не убился об callback hell на форме в 50+ полей и завернутой бизнес логике, которую через пол-года пришлось кардинально перепилить, т.к. бизнес резко сменил траекторию. вот тогда я задумался что надо в жизни что-то менять и задумался в сторону ангуляра - не зашло, потом эмбер - зашло но замудрённо, потом реакт с ванилькой и ес6. так-что в целом я конечно большой молодец, но в чем-то джун джуном со своими седыми висками. вот так вот. :)

Дмитрий
25.01.2017
22:34:57
слушай, а ты долго вообще шел к подобному коду?
Я несколько от обратного шёл, сначала я ощутил реальную потребность формулировать небольшие операции ёмко и удобно, поэтому, когда узнал о рамде — начать не было проблемой)) Спустя неделю было гораздо большей проблемой п е р е с т а т ь

Google

Дмитрий
25.01.2017
22:35:32

Andrew
25.01.2017
22:35:44

Pavel
25.01.2017
22:35:47


Andrew
25.01.2017
22:37:32
Да я видимо зря так ворвался. Я думаю многие думают и решают высокие материи, но на некоторые вопросы для джунов не сразу ответят
мне вот ООП не зашло, от слова совсем, еще со времен Borland Pascal 6/7, тогда еще дилемма стояла, а не смигрировать ли на С. но его дикий синтаксис меня тогда так высадил, что я не решился. правда потом пришел клиппер, через много лет та же пыха, теперь вот JS, в которых есть от С. короче никуда не делся. :) ну и на С не было спроса в нашей тундре, на клиппер был. интернет появился существенно позже, когда уже было поздняк метаться.

Val
25.01.2017
22:39:09
Redux - это ведь аналог rootScope/scope в ангуляре? Или тут другой принцип?

Grigory
25.01.2017
22:39:52
scope в ангуляре не в рамках компонента?

Val
25.01.2017
22:40:18
Есть рут, который на всё приложение

Дмитрий
25.01.2017
22:40:25
За $rootScope кстати в ангуляре по рукам бьют

Val
25.01.2017
22:40:50

Grigory
25.01.2017
22:41:15
scope больше аналог state в react'е имхо

Дмитрий
25.01.2017
22:41:27
Ну да кстати

Andrew
25.01.2017
22:42:38
А как осмыслить?) Пытаюсь для себя аналогию подобрать, вообще с ним не работал
ну вот представь, у тебя сложное приложение, как дерево, из сотен компонент, и какая-нибудь хитровыверченная бизнес логика, которая затрагивает разом много компонент не очень прозрачным способом. замудохаешься везде бегать, туда-сюда стейт с пропсами пробрасывать, и везде добиваться синхрона.
а так ты ложишь все это добро в стор, пробрасываешь пропсами в компоненты, меняешь в одном месте, вся бизнес логика у тебя в кучке, не размазана
весь стор перед глазами
вся логика тоже
а UI тупо перестраивается под изменения стейта в сторе

Val
25.01.2017
22:44:14
А, понятно. Спасибо

Grigory
25.01.2017
22:45:05
Чат про реакт, но таки спрошу, раз про ангуляр вспомнили: как в ангуляре между компонентами обмен данными происходит?

Val
25.01.2017
22:45:34
Сервисами, обычно

Arseniy
25.01.2017
22:46:40

Google

Andrew
25.01.2017
22:47:41
я когда-то пытался лисп раскурить малость. не понял как на нем делать то, чем я тогда обычно занимался и забросил.
все таки JS - уникальная штука.

Дмитрий
25.01.2017
22:48:57
Ну да))

Arseniy
25.01.2017
22:49:26
да-да-да!
что-то даже захотелось снова поиграться с хаскелем

Admin
ERROR: S client not available

Andrew
25.01.2017
22:50:35

Arseniy
25.01.2017
22:51:07
ага, а после джаваскрипта прохожу радиационный контроль

Andrew
25.01.2017
22:51:47

Val
25.01.2017
22:51:49
Понаиграются со своими хаскеллями, а потом проекты на кложурскрипты переводят... :)

Sheridan
25.01.2017
22:52:06

Andrew
25.01.2017
23:00:06
я когда впервые JS увидел, году так в 2008, тогда еще вроде был ES3 в ходу, а IE6 был живее всех живых, короче он мне дичайше не зашел. выбора, правда, не было особо, надо было работу работать, так-что приходилось как-то что-то делать. тогда еще даже jQuery не особо популярен был, всякие MooTools, Prototype.JS и иже зажигали. эх. а сейчас я уже не представляю себя без JS :) вот такие вот метаморфозы.

Дмитрий
25.01.2017
23:00:54
Я вообще js искренне хейтил

Arseniy
25.01.2017
23:01:00
ну и JS всё-таки поменялся за это время

Andrew
25.01.2017
23:01:14
я бы сказал кардинально поменялся.

Arseniy
25.01.2017
23:01:40
церковь свидетелей джаваскрипта.

KlonD90
25.01.2017
23:01:49

Val
25.01.2017
23:02:10
Ко всему привыкнуть можно) У меня после пайтона дико шаблон рвало от {}}}} и того, что все как попало пишут

Дмитрий
25.01.2017
23:02:17

Google

Дмитрий
25.01.2017
23:03:28
А почему компонент а не отдельная сущность?
Просто одна из его конечных целей — корректно работать с обновлениями через redux. Он оттуда и получает данные и кладёт обратно, и желательно, чтобы он это делал как можно чище

KlonD90
25.01.2017
23:03:52
Ну пусть сущность со стором работает

Дмитрий
25.01.2017
23:03:53
Ну и плюс автоматически получаем фичу, что загрузки перестают запускаться при смене пути
А в отдельной сущности нет нет, да выделишь внутренний стейт. Потом, разумеется, нужно будет оформить отдельно
Просто с учетом задачи, проще всего начать проверять идею было именно так. Просто, написал () => {} и connect для него и можно начинать

KlonD90
25.01.2017
23:06:41
Ну так делаешь какой-нибудь синглтон генератор суешь в него стор и норм же. Стейт из стора берешь и туда же ложишь.

Дмитрий
25.01.2017
23:09:04
Ну это в любом случае больше действий) Плюс прямые операции с объектом стора, который вообще лежит ооочень далеко
В этом нет какого-то глубокого замысла, это proof of work, задача которого — быть кратким и писаться быстро)
Потому что например с синглтонами сейчас всё там очень непросто, и этот момент ещё надо обдумать, а набросок загрузчика уже неделю как готов

KlonD90
25.01.2017
23:12:17
Ну кстати да синглтоны в стейт
Кто-нибудь заморачиваться 2+ сторов?

Дмитрий
25.01.2017
23:13:03
flux?)
А какая цель преследуется?

KlonD90
25.01.2017
23:14:19
Да хоть редакс. Снижение количества редусеров к примеру

Дмитрий
25.01.2017
23:14:23
Ну кстати да синглтоны в стейт
У меня подсознательное отторжение вызывает идея хранить мутабельные / "вечные" объекты в сторе) Вроде технически всё ок, но сам замысел смущает

Vladimir
25.01.2017
23:14:46

Дмитрий
25.01.2017
23:14:57