@react_js

Страница 4713 из 5115
Arthur
29.08.2018
09:23:02
а вот мне интересно, можно ли редьюсеры считать Dal уровнем с точки зрения архитектуры в общем ?

S̶m̶°̶O̶k̶™?✔️
29.08.2018
09:23:23
from
29.08.2018
09:23:29
Во всех приложениях больше хеллоуворлд
опять же необязательно В идеале должно быть достаточно смотреть на запросы к серверу как на сайд-эффект обновлений стора Но логика может быть и того сложнее, да. А потому столько разговоров про что, что редакс возможно не супер удобное решение

Google
from
29.08.2018
09:23:48
К примеру ?
componentDidUpdate к примеру; а зачем вообще че-то после setState писать

from
29.08.2018
09:24:16
CFFTRP
29.08.2018
09:25:38
Привет. Кто работал с react-intl ? Как вывести сообщение в экшене или редьюсере. (без InjectIntl). Часть текста регулируется через экшены и редьюсеры, и нужно в них перевести

Serhii
29.08.2018
09:26:19
Только ты намертво ее привязал к стору. А я не хочу этого
Ну так редьюсер всегда работает со стейтом (не стором). Или как ты собираешься отвязать бизнес-логику редьюсера от стейта?

from
29.08.2018
09:27:49
Я хочу чтобы стор занимался только одним — хранением данных.
в том же редаксе так и есть, в чём проблема?

anna
29.08.2018
09:27:52
кто юзал react-final-forms? там можно в Field встаивть компонент не input типа и валидирвоать его?

dima
29.08.2018
09:27:56
посоны. Юзал кто линзы в редьюсере ?

S̶m̶°̶O̶k̶™?✔️
29.08.2018
09:28:01
componentDidUpdate к примеру; а зачем вообще че-то после setState писать
А можно ли повесить componentDidUpdate на 1 свойтсво стейта ?

CFFTRP
29.08.2018
09:28:10
что значит вывести сообщение в редьюсере или экшене?
ну, например, при включении некоторых полей через экшен задается дефолтный placeholder, title. Вот эти сообщения дефолтные отправляются в стейт, взаимодействуют с беком

Google
from
29.08.2018
09:28:17
Сергей
29.08.2018
09:28:23
в том же редаксе так и есть, в чём проблема?
Ни в чем. Логику не хочу туда пихать

S̶m̶°̶O̶k̶™?✔️
29.08.2018
09:28:38
CFFTRP
29.08.2018
09:28:46
видимо если речь о коде вне реакта, то не нужен react-intl
ну с двумя языками еще ладно, можно через тернар 2 разных сообщения вернуть. А если переводов будет 10?)

Сергей
29.08.2018
09:28:53
Не хочу чтобы логика была вообще как-то связана со стором, кроме получения данных

from
29.08.2018
09:29:00
эм, словарик?

Artyon
29.08.2018
09:29:12
Мужики привет, каким образом организовать условную загрузку кода? Тоесть, предположим, к меня есть страница или компонент админкой панели, я не хочу чтобы он грузился клиенту если тот не авторизован

from
29.08.2018
09:29:14
Serhii
29.08.2018
09:29:26
Ни в чем. Логику не хочу туда пихать
Так редьюсер - это не стор. Это транзишн, а у транзишена, по определению, есть логика.

Сергей
29.08.2018
09:30:15
from
29.08.2018
09:30:27
Размазывание?

Сергей
29.08.2018
09:30:30
То есть размазали ровным слоем по всему коду

from
29.08.2018
09:30:34
Согласен

Сергей
29.08.2018
09:30:37
Игорь
29.08.2018
09:30:57
Интересно высока ли вероятность того что typescript умрёт в ближайшие лет 7

Google
CFFTRP
29.08.2018
09:31:30
Илья
29.08.2018
09:31:33
Интересно высока ли вероятность того что typescript умрёт в ближайшие лет 7
только если строгая типизация придет в стандарт)

Сергей
29.08.2018
09:31:38
скорее чистый js умрет
Тоже очень вряд-ли

from
29.08.2018
09:31:44
Именно!)
Мне вот удобный стор видится как некий объект, который имеет интерфейс очень похожий на лайфсайклы реакта в setState записываем состояние в didUpdate сайдэффекты с любой асинхронщиной

Илья
29.08.2018
09:31:51
Не придёт.
почему?

Игорь
29.08.2018
09:32:00
А почему? Был же Coffee, и что?

Andrey
29.08.2018
09:32:01
почему?
Потому что в рантайме она нахер не нужна.

from
29.08.2018
09:32:07
from
29.08.2018
09:33:26
Ты хочешь просто "сверху вниз" писать логику со всякими кондишнл обращениями к серверу?

Мы идём в тишине
29.08.2018
09:33:27
Сергей
29.08.2018
09:33:27
хм, а в чём именно "не зашло"?
Оказалось больно бегать по методам класса. Да и выяснять куда что провалится. Порядок вызова и т.д.

Илья
29.08.2018
09:33:34
Потому что в рантайме она нахер не нужна.
для оптимизации кода разве не лучше если код типизирован?

Мы идём в тишине
29.08.2018
09:33:55
Сергей
29.08.2018
09:34:03
ой, прям))
Я по крайней мере

Google
from
29.08.2018
09:34:03
Ну почти
Мне думается что это гиблая идея гнаться за такой целью Но конечно ты попробуй, посмотрим :)

Andrey
29.08.2018
09:34:06
Ну, могут добавить примитивы нормальные. Этим и ограничится.

Сергей
29.08.2018
09:34:34
Мы идём в тишине
29.08.2018
09:34:56
И все начали страдать))
если сравнивать с thunk, то как раз меньше страданий

Сергей
29.08.2018
09:35:02
Мне думается что это гиблая идея гнаться за такой целью Но конечно ты попробуй, посмотрим :)
Цель немного не про линейность. А про сбор логики в одном меньше

если сравнивать с thunk, то как раз меньше страданий
Зато Санк гибкий. А сага костыль. Отлаживать его крайне больно

Admin
ERROR: S client not available

Мы идём в тишине
29.08.2018
09:35:50
Илья
29.08.2018
09:36:00
Сергей
29.08.2018
09:36:39
потому что регенератор?
Потому что можно ждать некоего события и не знать где ещё его ждут. И вообще очень сложно без грепания по коду и запуска приложения узнать, что произойдет после диспатча конкретного события

Serhii
29.08.2018
09:38:27
Мне вот удобный стор видится как некий объект, который имеет интерфейс очень похожий на лайфсайклы реакта в setState записываем состояние в didUpdate сайдэффекты с любой асинхронщиной
Мне нравится интерфейс редакса: dispatch, getState, subscribe. От себя я только в интерфейс добавил memoize в своей библиотеке (вычисляет функцию только если стейт стора был изменён) https://github.com/blackakula/redux-composite

Мы идём в тишине
29.08.2018
09:40:44
Потому что можно ждать некоего события и не знать где ещё его ждут. И вообще очень сложно без грепания по коду и запуска приложения узнать, что произойдет после диспатча конкретного события
Сага это не только и не столько про ожидание событий. Хотя, обычно когда заговариваешь про сагу, люди часто представляют её, как "штуку, которая умеет делать takeEvery". Ну и что-то нездоровое есть в той логике, в которой экшен, относящийся к одной фиче, тейкается в нескольких местах. Возможно, неправильно формализированы экшены. В принципе, согласен, нет технологии, гарантированно защищающей от спагетти в коде — было бы желание)

Serhii
29.08.2018
09:42:04
Потому что можно ждать некоего события и не знать где ещё его ждут. И вообще очень сложно без грепания по коду и запуска приложения узнать, что произойдет после диспатча конкретного события
Open-Closed Principle - программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения. Как из своего модуля расширить систему, если нет возможности подписаться на события в сторе?

Мы идём в тишине
29.08.2018
09:42:25
Мне также не нравится, что сага крайне не явная
Значит, у тебя не было таких задач.

Google
Мы идём в тишине
29.08.2018
09:42:42
зачем если есть reselect
украл мой комент

Сергей
29.08.2018
09:42:48
Значит, у тебя не было таких задач.
Было. Решал проще. Переписал три проекта с саг. Один был прям большой

Andrey
29.08.2018
09:43:14
Значит, у тебя не было таких задач.
Давай пример задачи, где саги оправданны.

Мы идём в тишине
29.08.2018
09:43:28
пойду я, ребят, поработаю. очередной сайдэффектосрач

Serhii
29.08.2018
09:43:30
зачем если есть reselect
логика reselect зависит от структуры стейта. Я как раз хотел избавиться от этой зависимости в своей либе

Мы идём в тишине
29.08.2018
09:43:53
Давай пример задачи, где саги оправданны.
управление долгоживущим процессом

Сергей
29.08.2018
09:44:04
Andrey
29.08.2018
09:44:27
управление долгоживущим процессом
Ещё "логика на сайте" напиши. Поставь конкретную задачу.

Мы идём в тишине
29.08.2018
09:44:44
Ещё "логика на сайте" напиши. Поставь конкретную задачу.
Запустил ты некий воркер, а воркер принимает кучу команд и выдаёт кучу событий, которые надо отображать в реалтайме. Например, воркером конкретно у меня служит бинарник mp3 плеера. Нужно запускать воспроизведение файла, отображать позицию, управлять позицией, управлять громкостью, реагировать на конец воспроизведения, и ещё огромная куча мелких задач. Я пробовал разные подходы, один раз даже полностью переписал логику с нуля, и сага в данном кейсе очень зашла. Мне удобно рассматривать саги, как аналоги unix-процессов, которые можно запускать, прерывать, форкать, джойнить итд.

Я не говорю, что сага в данном случае универсальный паттерн. Если задача сводится к "загрузить с сервака табличку, отобразить формочку, запостить формочку", то да, там с головой хватит более простых решений.

Alexey
29.08.2018
09:50:18
так то сага для сайд эффектов больше

Alexey
29.08.2018
09:50:27
сменил юзера, и нужно кучу данных перетянуть

Мы идём в тишине
29.08.2018
09:52:45
Вообще не пойму как здесь Сага поможет. Обычный EE решает ситуацию на ура. Можно даже просто события в ридакс отправлять
С эвент-эмиттером всё как раз будет выглядеть неявно и нелинейно. С сагой —линейно. Однако, когда я стартовал проект, я примерно рассуждал так же.

Мы идём в тишине
29.08.2018
09:56:13
Только вот отлаживать сагу боль. Так как линейности там нет на деле
Ну ок, не отлаживай. Линейность зависит от точки зрения проектировщика. Частым заблуждением, повторюсь, является злоупотребление примитивными паттернами и то, что сагу рассматривают, как некий сабскрайбер на экшены, и не более. В то время, как это фреймворк конкуррентности.

Maxim
29.08.2018
10:09:58
Кто мучался с onseui ?

RouterNavigator - какую-то дичь предлагает в апи, а типы в ТС писали японские гомосеки к нему

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