@react_js

Страница 1807 из 5115
Вася
24.07.2017
19:16:53


ну и сам setState https://github.com/facebook/react/blob/master/src/isomorphic/modern/class/ReactBaseClasses.js#L59

а, не, вот

https://github.com/facebook/react/blob/b1768b5a48d1f82e4ef4150e0036c5f846d3758a/src/renderers/shared/stack/reconciler/ReactUpdateQueue.js#L208

Google
Вася
24.07.2017
19:20:42
короче чет на ночь глядя сложно

Igor
24.07.2017
19:21:28
я честно говоря не понял тон дискусии но setState дейстивтельно асинхронный тк изменения батчаться к след циклу апдейта и вообще вроде там собираются форсить в документации чтобы все использовали функциональную форму setState

Disa
24.07.2017
19:22:11
не, ладно, я наверно тупой. но я не вижу там каких-либо асинхронных действий. То есть, он записывает новое состояние, но просто тебе его ещё не отдает, а только после хуков

Вася
24.07.2017
19:22:40
читай файбер сразу)
нннну, файбер это другое я подозреваю

Igor
24.07.2017
19:22:43
там одна из фишек в этом, сейчас попробую найти обзор

Сергей
24.07.2017
19:22:48
Igor
24.07.2017
19:22:58
нннну, файбер это другое я подозреваю
файбер это 16 реакт который вот вот выйдет

Вася
24.07.2017
19:23:10
ну я знаю что такое файбер

Сергей
24.07.2017
19:23:23
Disa
24.07.2017
19:23:40
ну я знаю что такое файбер
я думал никто не знает)

Google
Вася
24.07.2017
19:23:46
я про то что файбер походу меняет имплементацию сет стэйта, то есть не тот который сейчас

а нас интересует теперешний

я думал никто не знает)
ну я хз как он изнутри, знаю что рендер разбивает на мелкие кусочки хитро, а что, как, хз. пока не интересно

Igor
24.07.2017
19:26:26
у кого много свободного времени можно читать там https://github.com/facebook/react/issues/7942

Igor
24.07.2017
19:34:41
кстати насчет асинхронности setState https://facebook.github.io/react/contributing/design-principles.html#scheduling

To be clear, we are not taking advantage of this right now. However the freedom to do something like this is why we prefer to have control over scheduling, and why setState() is asynchronous. Conceptually, we think of it as "scheduling an update".

Котяй Негодяй
24.07.2017
19:40:17
redux-act vs redux-actions. И почему?

Вася
24.07.2017
19:41:03
redux-act vs redux-actions. И почему?
я бы ничего не выбрал

но на твоем месте на звезды на гитхабе бы смотрел

Котяй Негодяй
24.07.2017
19:42:43
Астарожнааа. Я Вас, сударь, принял за спамера.

Вася
24.07.2017
19:43:02
:(

а стоит ли вообще такие приблуды использовать?

Котяй Негодяй
24.07.2017
19:45:39
Ну, лично мне надоело писать тонны боилерплейт-кода. Редъюсеры итак довольно жирные. И иногда они тупо отличаются названием экшнов (даже наборы экшнов однотипны). А то, что я ещё и Flow юзаю, добавляет рутины.

Вася
24.07.2017
19:47:03
хотя у нас и приложение не особо большое, но очень гранулярный бэкэнд, там кучу запросов надо слать для того что бы собрать нужные данные.

сага в этом деле спасла

Котяй Негодяй
24.07.2017
19:58:51
А чего сага даёт помимо удобной работы с асинхронными экшнами?

Сергей
24.07.2017
19:59:09
А чего сага даёт помимо удобной работы с асинхронными экшнами?
сага не дает ничего для удобной работы с асинхронными экшенами

Google
Сергей
24.07.2017
19:59:28
async/await — вот это удобная работа с асинхронными экшнами

Вася
24.07.2017
20:01:35
А чего сага даёт помимо удобной работы с асинхронными экшнами?
она позволяет строить так называемые потоки выполнения. то есть что-то типо сценраиев, я хз как назвать. в итоге количество экшенов/редьюсеров сокращается в разы

Котяй Негодяй
24.07.2017
20:02:39
Я её ковырял когда-то. Не хватило времени перейти на неё.

Вася
24.07.2017
20:03:20
А чего сага даёт помимо удобной работы с асинхронными экшнами?
ну и это тип не правильно, использовать сагу только для асинхронных экшенов. я сам так раньше делал, пока не прозрел

Котяй Негодяй
24.07.2017
20:03:23
Да и не нужно особо было.

Вася
24.07.2017
20:03:36
Я её ковырял когда-то. Не хватило времени перейти на неё.
типо на каждый фетч - вешается сага предположим

Котяй Негодяй
24.07.2017
20:03:47
Сейчас смотрю доку. takeLatest — это вещь. =)

Вася
24.07.2017
20:04:10
в итоге у нас сейчас одна сага на все фетчи, плюс она контролирует статус аутентификации, экспайры токенов и бла бла бла

Disa
24.07.2017
20:04:17
Разве сага не чисто для сайд эффектов?

Вася
24.07.2017
20:04:48
Разве сага не чисто для сайд эффектов?
ну так а чем тебе не сайд эффект?

Котяй Негодяй
24.07.2017
20:04:55
Кстати, зачем редъюсерам сайд-эффекты?

Вася
24.07.2017
20:05:05
Сейчас смотрю доку. takeLatest — это вещь. =)
короче почитай внимательно доку и примеры, возможно она вам подойдет

Котяй Негодяй
24.07.2017
20:05:16
Вася
24.07.2017
20:05:44
Оно же чистое? Не?
так а причем тут редьюсеры?

Котяй Негодяй
24.07.2017
20:05:56
Выворот мозгов, мать его.

Вася
24.07.2017
20:06:04
намерение фетча чего либо - а там уже сага запукается нужная

редьюсер тут не примем совсем

Котяй Негодяй
24.07.2017
20:06:28
Я ваще хотел rxjs осваивать и всё на redux-observable пилить.

Сергей
24.07.2017
20:06:32
Я считаю, что сага нужна, когда есть сложный флоу

Google
Сергей
24.07.2017
20:06:40
В остальном санк и асинков хватит

Вася
24.07.2017
20:06:57
Я считаю, что сага нужна, когда есть сложный флоу
ну так оно и есть. я писал выше что у нас очень гранулярный бэк

Котяй Негодяй
24.07.2017
20:07:17
Короче, вопросов стало только больше.

Сергей
24.07.2017
20:07:22
ну так оно и есть. я писал выше что у нас очень гранулярный бэк
Если просто по очереди делать запросы — сага не нужна

Вася
24.07.2017
20:07:24
ну так оно и есть. я писал выше что у нас очень гранулярный бэк
без саги бы мы заебались бы собирать всю эту муку в нужное состояние

Сергей
24.07.2017
20:07:56
Пример приведи

Admin
ERROR: S client not available

Вася
24.07.2017
20:08:16
короче саги довольно хитрые у нас. плюс еще то что мы работаем с девайсами, от них нужно данные получать, мерджить их с бэком - короче мука

Котяй Негодяй
24.07.2017
20:09:19
Так. Дайте понять. А... Сага, т.е. просто связывает вызовы экшнов и всё. При этом экшны о ней не знают, редьюсеры пишутся, как обычно, а саги просто пихаются в миддлвари?

Вася
24.07.2017
20:09:21
Пример приведи
ну я говорил уже что сага отдельная на фетчинг почти всего, плюс эта сага контролирует весь флоу аутентификации если это надо (там он малек не обычный, так как девайс, йопта)

потом отдельный чанел на бридж для обзения с девайсом

Котяй Негодяй
24.07.2017
20:10:30
ну прицнип да, такой
Вот это очень круто. Я пиздец как против того, чтобы экшн криейтор знал, что ему нужно куда-то отправлять http-запрос.

Котяй Негодяй
24.07.2017
20:10:50
Вот-вот.

А санк подталкивает к такому.

Вася
24.07.2017
20:11:18
ну я, честно говоря, не использовал его никогда

Nell ?
24.07.2017
20:11:44


Google
Sergey
24.07.2017
20:12:27
потом отдельный чанел на бридж для обзения с девайсом
Тоже так делал. Но отказался. ~ 6 мс жрет на каждом диспатче

Котяй Негодяй
24.07.2017
20:12:39
Ну, хотя от реализации можно абстрагироватья. Мы так и делали с санком. Просто каррировали экшн-криейторы и привязывали к ним реализацию все побочной фигни. Но это всё равно было каким-то компромиссом. А вот связь экшнов через миддлвари — это хорошо.

Сергей
24.07.2017
20:13:18
Как вы любите неочевидный код. Кошмар

Котяй Негодяй
24.07.2017
20:13:44
Ладно. Тогда redux-saga vs redux-observable. И почему? =)

Котяй Негодяй
24.07.2017
20:14:01
Как вы любите неочевидный код. Кошмар
Да хорош. Вовсе не неочевидный.

Sergey
24.07.2017
20:14:07
а чем заменил?
Ванилой. Да гиморнее. Да код получается местами не такой красивый. Но 60 фпс сами себя ненарендерят )

Сергей
24.07.2017
20:14:36
Да хорош. Вовсе не неочевидный.
Миддлвары это не очевидность же

Вася
24.07.2017
20:14:53
Миддлвары это не очевидность же
ну миддлвары чистые - это пиздец

Sergey
24.07.2017
20:15:28
ну у нас по поводу перфоманса вопрос не стоит :)
Я как начал воевать с анимацией вопрос перфоманса встал. Очень.

Вася
24.07.2017
20:15:33
ну миддлвары чистые - это пиздец
я помню такой ад из этого говна видел. что-то щелкает, пукает, прыгает, экшены эти от миддлвари до миддлвари летают

Я как начал воевать с анимацией вопрос перфоманса встал. Очень.
типо сагавские каналы сами по себе медленные?

Sergey
24.07.2017
20:18:21
типо сагавские каналы сами по себе медленные?
Ну как медленные. На десктопе ты этого и не заметишь. У меня на самом слабом девайсе регулярно матч по имени экшена занимал до 6 мс. А 6 мс очень много

Котяй Негодяй
24.07.2017
20:18:48
Миддлвары это не очевидность же
Так ты только подумай. Экшны и редьюсеры в идеале тоже должны быть переносимы (ничоси? ну, это я так решил) и быть абстрагированы от всех особенностей текущего проекта (не только куда отправлять и какие запросы, но ещё и каким образом). Офигенно выглядит код, когда у тебя есть набор событий. Тогда у тебя стейт как ветвистый... нет, не ветвистый, а одного уровня вложенности евент-эмиттер, это более низкий уровень, CRUD. А БЛ над ним ты выстраиваешь, формируя связи между экшнами, создавая поведение приложения над этим CRUD. Это более высокий уровень.

Котяй Негодяй
24.07.2017
20:20:09
Поэтому экшн-криейтор никуда ничего не должен отправлять. Он должен только принимать аргументы и возвращать экшн.

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