
Ostap
15.07.2016
05:55:58
могу побольше

Kich
15.07.2016
05:56:04
Я считаю, что не нужно из крайности в крайность. Если есть например компонент в виде datepicker, то не нужно все пропсы этого компонента вытаскивать в глобальный стейт. А если этих дейтпикеров больше чем один, то это превращается в попа-боль. Короче, делайте как хотите, вам потом с этим кодом жить

Алексей
15.07.2016
05:56:20
И вот ты пилишь для каждого запроса свой редьюсер, константу и все такое, что бы загружать данные какие-то с сервера в компонент

Ostap
15.07.2016
05:56:56

Google

Алексей
15.07.2016
05:57:00
Это первая стадия редукса головного мозга, вторая же, просто создать небольшой HOC, который будет отвечать за все простые запросы к серверу. И тогда вообще не нужно будет париться на счет экшенов с загрузкой

Ostap
15.07.2016
05:57:26

Kich
15.07.2016
05:57:33
нахер надо

Алексей
15.07.2016
05:57:42

Kich
15.07.2016
05:57:56
бизнес логика отдельно от логики компонентов

Алексей
15.07.2016
05:58:04
Каждый HOC отвечает за свое дело. Только загрузка данных с сервера, например.
Если логика сложнее, то и не нужно ее сувать в этот HOC

Ostap
15.07.2016
05:58:22
то это нужно в компоненте ?
а как же re-usage

Kich
15.07.2016
05:59:01

Ostap
15.07.2016
05:59:14
sek

Google

Kich
15.07.2016
05:59:48
возьми все действия, которые можно делать и раздели их. Я считаю бессмысленым обсуждать эфимерные вещи
без какой либо конкретики

Ostap
15.07.2016
06:00:24
есть 2 селекта
1 зависит от другого
т.е. список 2 селекта зависит от выбора в первом
где держать логику ?

Kich
15.07.2016
06:01:06
возьми компонент посложнее простого селекта/инпута

Ostap
15.07.2016
06:01:18
мы же не про сложность
я про кейс

Алексей
15.07.2016
06:01:25

Ostap
15.07.2016
06:01:31
вооот
это классический подход
где у тебя эсть БИЗНЕС логика в компоненте
так сказать в "умном"
или ViewModel
а вот после перехода на mobx у меня ВСЯ бизнес логика только в сторе

Kich
15.07.2016
06:02:20
печально.

Ostap
15.07.2016
06:02:27
наоборот
почему бизнес логика у тебя в компоненте

Google

Kich
15.07.2016
06:03:07
я те про одно, ты мне про другое

Алексей
15.07.2016
06:03:17
наоборот
ну вот, а теперь представь что у тебя 1000 таких вот компонентов, где есть два селекта? И что тогда делать?

Ostap
15.07.2016
06:03:38
сорри. не оч понял проблему

Kich
15.07.2016
06:03:52
https://github.com/quri/react-bootstrap-datetimepicker - вот например

Ostap
15.07.2016
06:04:03
ок
привести пример с пикером ?

Kich
15.07.2016
06:04:20
ты предлагаешь всё говно из компонента выносить наружу?

Алексей
15.07.2016
06:04:23
сорри. не оч понял проблему
ну у тебя же вся логика хранится в одном месте. В сторе. Получается если у тебя есть 1000 одинаковых компонентов, данные для которых хранятся в строе

Ostap
15.07.2016
06:04:29
выбор даты ?

Kich
15.07.2016
06:04:33
Если реально тебе нужен будет только onChange и value
в бизнес логике

Алексей
15.07.2016
06:04:51
то у тебя в сторе будет 1000 одинаковых структур?

Ostap
15.07.2016
06:04:52
стоп. мы друг друга не поняли )

Kich
15.07.2016
06:05:06
Мне тоже так кажется

Ostap
15.07.2016
06:05:15
лол
если ты пишеш либу - мобкс не нужен
напили компонент и дай норм апи как onChange и value
я про бизнес логику выбора даты
например запрещать выбор даты

Google

Алексей
15.07.2016
06:06:19
зачем это в сторе хранить?

Ostap
15.07.2016
06:06:35
а если зависит от данных ?

Алексей
15.07.2016
06:07:15
Я так понял, Kich говорит о том, что не надо все из компонента доставать. В сторе хранятся только те данные, которые нужны в разных местах

Kich
15.07.2016
06:07:23
да
всё верно

Алексей
15.07.2016
06:07:35
Хранить открыт или нет дэйтпикер в сторе
это извращение

Ostap
15.07.2016
06:07:41
о нет
конечно нет!

Admin
ERROR: S client not available

Ostap
15.07.2016
06:08:02
я про например форму с 25-30 инпутов

Kich
15.07.2016
06:08:05
Просто изначально было утвержение что setState не нужен :)

Алексей
15.07.2016
06:08:34
Это уже не компонент, это уже контейнер

Ostap
15.07.2016
06:08:44
вооот
это класический подход который я использовал
я делал конейнер

Алексей
15.07.2016
06:09:06
И он тебе не подошел?

Ostap
15.07.2016
06:09:09
в нем держал стейт

Google

Ostap
15.07.2016
06:09:14
и прокидывал пропсы
все было ок

Алексей
15.07.2016
06:09:32

Ostap
15.07.2016
06:09:55
но! таких компонентов оч много и они начали держать и бизнес логику
это норм
когда приложение мелкое
про сет стейт https://medium.com/@mweststrate/3-reasons-why-i-stopped-using-react-setstate-ab73fc67a42e#.zd33q1lkv
от автора mobx
так вот
очень трудно контролировать когда у тебя бизнес логика в стейте
а когда только стейт (именно стейт)
и тогда начинаеться
чтобы чтото поменять нужно 3 места
экшн стор и котейнер

Алексей
15.07.2016
06:11:44
так можно ведь не хранить в стейте бизнес логику. Пусть ок, она будет в сторе
Но кроме бизнеслогики
У компонента может быть и своя, свое поведение
Вот его и нужно хранить в стейте, даже у контейнера может быть такая ситуация

Ostap
15.07.2016
06:12:12
но это оч трудно контролировать
потомучто isSomeTrickyComputation ? <renderOne> : <renderAnother>
это бизнес логика
я не про