@react_js

Страница 2776 из 5115
Ruslan ?
16.12.2017
05:54:01
getState в экшене - не очень хорошая практика. Экшен только эмитит ивенты, а редюсеры уже стейт изменяют

Andrey
16.12.2017
05:54:52
getState в экшене - не очень хорошая практика. Экшен только эмитит ивенты, а редюсеры уже стейт изменяют
Практика - практикой. Но вопрос был о затратности. Не затратно, хотя и говно.

Ruslan ?
16.12.2017
05:55:46
Функция getState в генераторе доступна на всякий случай

Саги предполагают что у тебя синхронный генератор и асинхронное всё остальное, но это неудобно Я предлагаю взять асинхронный генератор и делать все запросы нормально, а снаружи yield — только сам стейт и он синхронный
Я согласен, нужно сделать async дефолтным. Для синхронного можно на thunk навесить отдельную мидлварь, или вообще сделать factory для передачи своего обработчика yield-ов

Google
Stepan
16.12.2017
06:26:21
@ZeroBias, когда ты спишь?

Nahasaki
16.12.2017
08:25:13
> https://strapi.io/ что-то похоже на deployd

Razzwan
16.12.2017
08:26:13
Спасите! Как называется библиотека графических компонентов крутая красивая?

Anton
16.12.2017
08:32:40
material ui, antd?

Viktor
16.12.2017
08:33:34
react-strap

Петька, приборы

Dan
16.12.2017
08:54:55
эпики это из redux-observable?

Andrew
16.12.2017
09:12:10
Mike
16.12.2017
09:13:03
А можете объяснить, чем эта хуета лучше, чем обычные промисы?

Я про стримы и обзервабл херню

Кроме того что с ангуляра проще переходить?

Google
Andrew
16.12.2017
09:15:49
Легко и приятно

Кроме того что с ангуляра проще переходить?
Ангуляр же внутри rxjs использует для обзерваблов

?

Mike
16.12.2017
09:18:09
Отменять, и? Зачем?

Andrew
16.12.2017
09:19:31
Отменять, и? Зачем?
Пользователь зашел на страницу, а потом решил сразу уйти

А промис все равно выполнится

Mike
16.12.2017
09:20:36
Пользователь зашел на страницу, а потом решил сразу уйти
Проигнорировать просто результат промиса? В основном-то промисы -- это запросы, на сервере то как такое обрабатывать? Один хрен что отменил, что проигнорировал

Mike
16.12.2017
09:21:57
Ну тип оптимизация и тд
А в чем оптимизация? Я просто не не вижу, вижу только оверхэд из либы над нативной штукой

Andrew
16.12.2017
09:22:32
Но на самом деле дальше туду листа redux-observable не писал ?

Когда у тебя есть потом данных который постоянно приходит в приложение

Вообще есть же видео, там из нетфликса вроде ребята рассказывают

Что и зачем

Mike
16.12.2017
09:23:42
Ну приходит и пусть, он же все равно по одному где-то приходит, или в онмесседж сокета, или в запросах, при чем тут стримы?

Andrew
16.12.2017
09:23:47
Во

Mike
16.12.2017
09:23:59
Ок, спс, гляну

Пока не осознал

Artyom
16.12.2017
09:24:05
Отменять, и? Зачем?
У нас есть запрос на график для аналитики, который может 5 - 20 секунд выполняться. Если пользователь будет менять фильтры раз в 5 секунд, не дожидаясь ответа, 2ой ответ может придти раньше 1ого, что будет большой ошибкой

Google
Dan
16.12.2017
09:25:19
race condition называется

Artyom
16.12.2017
09:25:26


Понятно что как бы есть Map, Set. Но почему в обычный объект по дефолту этого не вставлять, какие подводные камни?

Artyom
16.12.2017
09:27:13
Dan
16.12.2017
09:27:16
Кстати отмену запросов можно на генераторах сделать

Mike
16.12.2017
09:27:54
Ну это имхо сложнее и неудобнее
Одна переменная прям там же где промис? Зато мой код не тянет лишней абстракции и любой Джун его прочитает и поймет

И код-то на самом деле короче получается

И главное, кого ни спрошу -- отмена единственное о чем говорят

Mike
16.12.2017
09:34:57
debounce, delay, throttling
Это все хорошие слова, го можно реально жизненную задачу, где кому-то здесь, лично, стримы сильно упростили жизнь?

Mike
16.12.2017
09:35:29
И при чем именно упростили, а не "теперь мы каждого нового Джуна месяц учим в нашем коде ориентироваться"

Dan
16.12.2017
09:35:45
это не обязательно нужно делать стримами. И если у тебя нет таких задач, то тебе это и не нужно

Mike
16.12.2017
09:35:51
(нетфликс гляну)

Так я и спрашиваю, пример можно?

Знаю я эти ответы "если у тебя нет задач, тебе не нужно", сам так отвечал, это просто значит, что отвечать влом))

Собеседовали тут одного, очень хайпил эти стримы, а когда попросили по делу рассказать, что они дают полезного, так и не осилил

Вот мне и интересно, он не осилил, или они правда просто очередная сахар либа ни о чем

Google
Andrey
16.12.2017
09:44:14
Это може можно назвать стрим операциями.

Ты не обрабатываешь каждый элемент, ты задаёшь цепочку операций.

Mike
16.12.2017
09:44:55
Ок, поясню, мой вопрос про обзервабл стримы из рх

Чисто зачем нужна лмба если на вид без нее проще?

Верю что есть примеры

Но я их не встречал

Вот думаю мб тут кто встречал

Admin
ERROR: S client not available

Andrey
16.12.2017
09:46:11
Ок, поясню, мой вопрос про обзервабл стримы из рх
Асинхронные операции и их отмена.

Mike
16.12.2017
09:47:06
Вот. Отмена. Я привел пример как это сделать на поромисах чище, короче, и чтобы любой новый сотрудник понял. Где я не прав?

Andrey
16.12.2017
09:47:17
Самый простой сценарий - отображение ошибок. Ты можешь просто сделать стрим, который отвечает за ошибки, а потом с интервалом в 5 секунд их выводить по порядку.

А не делать для каждого запроса ERROR секцию в редаксе.

Mike
16.12.2017
09:50:13
Погоди, эррор секция для каждого запроса нужна, если одновременно запросов много и нужно знать, на какой пришла ошибка. Чем поток ошибок поможет узнать, на какой именно это пришло? И что мне мешает к ответу добавить поля саксесс и эррор месседж, которое заполняется, если саксесс фолс?

Irina
16.12.2017
09:50:38
Нубский вопрос: где лучше сделать запрос на получение данных, которые нужны всему приложению сразу же? Обновления store редакса не успевают подтягиваться, прежде чем произойдет рендер componentWillReceiveProps тоже не помог.

Mike
16.12.2017
09:52:46
А как же... Индексация...

Google
Andrey
16.12.2017
09:53:24
А как же... Индексация...
Не всё требует индексации.

Irina
16.12.2017
09:53:32
Andrey
16.12.2017
09:54:18
Как это правильно погуглить?)
Сделай корневой компонент, который отображает сообщение "Загрузка", пока основные данные не загрузились.

Так?
Не особо понял на что ты реплай дал. Если говорить в общем, то промисы - это вещь, которая создавалась не для обработки данных, а для выполнения асинхронной операции. И если не рассматривать отмену операции, то промисами можно покрыть стримы, но это будет выглядеть очень уродливо.

Mike
16.12.2017
10:02:27
Вот я и жду что кто-то умный придет и скажет нет, вот тебе пример нормальный

Andrey
16.12.2017
10:04:24
Так все ответы на зачем нужны стримы обычно и состоят в том, чтобы сделать одну асинхронную операцию (мб несколько раз) с возможностью отмены
Я сейчас на стримах прокидываю поток данных, которые генерирует rAF. Да, ты можешь ддосить редакс, но гораздо проще создать стрим в одном месте, прокинуть его куда надо и там слушать поток данных.

https://codesandbox.io/s/mqw1pnnzlx Сделал пример компонента на стримах Кнопка растёт при щелчке) Стрим используется не только в самом компоненте, но и jss тоже получает вместо функции стрим

Mike
16.12.2017
10:05:42
Интересно, посмотрю

Спс

Andrey
16.12.2017
10:06:07
Вот пример от мемчанского, который показывает как можно "упростить" код. Да, порог входа гораздо выше, но и вещи позволяет делать бомбические.

Irina
16.12.2017
10:12:51
Сделай корневой компонент, который отображает сообщение "Загрузка", пока основные данные не загрузились.
Этот запрос происходит только в случае, если пользователь авторизован. Не очень представляю, как сделать корневой компонент для части компонентов, отрисовывающихся в switch роута

Andrey
16.12.2017
10:13:54
Сделай хок ifAuthorized и оберни все нужные компоненты.

Andrey
16.12.2017
10:22:46
Ну вот. А внутри его пусть будет хок, который грузит нужные ванные.

Irina
16.12.2017
10:23:16
? спасибо

Andrey
16.12.2017
10:35:02
У меня после обсуждения возник другой вопрос. Зачем нужен редакс? Почему его не заменить на стримы?

Andrew
16.12.2017
11:02:19
Зачем вообще бек нужен

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