@react_js

Страница 4437 из 5115
Artem
19.07.2018
22:10:13
слушайте, архитектурный тупик, вот юзаю redux для источника данных для рендера компонентов, всё отличненько, фича имеется свой редюсер, всё зашибись, фичу можно отвзять от ридакса, дать другой источник и все кулл, но как только фича имеет внутри фичу, получается кракен, кто нить с таким справлялся?

Artyom
19.07.2018
22:10:29
слушайте, архитектурный тупик, вот юзаю redux точка

Artem
19.07.2018
22:11:06
слушайте, архитектурный тупик, вот юзаю redux точка
что удобного вместо redux заюзать советуешь?

что бы решало проблему выше

Google
Artyom
19.07.2018
22:12:22
Нормализация, видимо

Artem
19.07.2018
22:12:47
Нормализация, видимо
а по подробнее?

window.store = {}
слишком толсто)

Artyom
19.07.2018
22:13:13
а по подробнее?
В смысле ты у себя нормализуй. Сделай все плоско и отдельно связи пропиши

Дмитрий
19.07.2018
22:13:22
window.store = {}
А теперь подпишись на обновления

Artem
19.07.2018
22:14:13
В смысле ты у себя нормализуй. Сделай все плоско и отдельно связи пропиши
ну так это из разряда кэп) Проблема в другома, фича может быть фиче, куда тут денешься?

andretshurotshka?❄️кде
19.07.2018
22:14:14
window.store = new Proxy

Abu
19.07.2018
22:14:26
А теперь подпишись на обновления
Эт слишком усложняет жизнь

Artem
19.07.2018
22:14:33
window.store = new Proxy
не полифилится)

Дмитрий
19.07.2018
22:15:10
Да даже window есть не всегда ?

Artem
19.07.2018
22:15:34
Да даже window есть не всегда ?
о, эффектор такую задачу решает?)

Andrew
19.07.2018
22:16:07
Google
Дмитрий
19.07.2018
22:16:08
Он для такого и задумывался

Abu
19.07.2018
22:18:06
Все просто и не нужен эффектор (сарказм)

Дмитрий
19.07.2018
22:18:22
global.store = {}
Нельзя

andretshurotshka?❄️кде
19.07.2018
22:18:25
Дмитрий
19.07.2018
22:18:26
Там мой стор лежит

?

Artem
19.07.2018
22:19:07
ты про сср?)
не, про редюсер и фичу, и проблема когда фича в фиче, изолированность ридакса от реакта идет прахом)

Он для такого и задумывался
что то сходу не вьехал в него)

Artyom
19.07.2018
22:23:11
Ух https://habr.com/post/348586/

Дмитрий
19.07.2018
22:25:40
что то сходу не вьехал в него)
Основные приемы: const addItem = createEvent('name') const list = createStore([]) list.on(addItem, (list, item) => [... list, item]) const lengthMessage = list.map( list => 'length: ' + list.length ) const both = createStoreObject({list, lengthMessage}) both.watch(obj => {console.log(obj.lengthMessage)}) addItem('foo') addItem('bar') // => length: 1 // => length: 2

Каждый createStore — как отдельный редакс-стор, чтобы их можно было вычислять по раздельности createEvent создает action creator, функцию вызывающую обновление всех слушателей, подписанных через .on и .watch

Дмитрий
19.07.2018
22:28:45
Чтобы в примере упомянуть createStoreObject)

Естественно можно навешивать сразу, так даже лучше)

Artem
19.07.2018
22:32:38
Ага
типа вот забацал я фичу А, со своим стором, стор объединяю, и в фиче Б пропсами прокидываю данные для стора его стора и стора Б, хмммм, чёта сам запутался)))

Google
Artem
19.07.2018
22:33:24
или я просто со стора фичи Б могу брать данные для стора вложенный фиче

во вот это уже на правду похоже становится)

Дмитрий
19.07.2018
22:34:09
Ага

Artem
19.07.2018
22:34:27
блин классная идея)

Дмитрий
19.07.2018
22:35:43
Ещё кстати вот так можно import {createComponent} from 'effector-react@next' const LengthMessage = createComponent( lengthMessage, (props, state) => ( <div>{state}</div> )) <LengthMessage />

Artem
19.07.2018
22:36:15
@ZeroBias ты когда скринкасты пойдешь пилить на egghead.io ?) там вроде все есть mobx,redux не стоит нарушать традиций

Дмитрий
19.07.2018
22:36:58
Чёрт, по ходу придётся)

Abu
19.07.2018
22:37:15
И доку!

Petr
19.07.2018
22:37:57
axios зачем , есть же fetch

Artyom
19.07.2018
22:39:11
axios зачем , есть же fetch
fetch - инструмент, axios - библиотека

andretshurotshka?❄️кде
19.07.2018
22:39:51
Ух https://habr.com/post/348586/
тут еще аж в 2016 чикохуззу топил за глиммер

Artem
19.07.2018
22:44:13
тут еще аж в 2016 чикохуззу топил за глиммер
ну ну движуха интересная, с этим байткодом, тока представьте через лет 5 сидишь пишешь такой на питоне spa для браузера)))

andretshurotshka?❄️кде
19.07.2018
22:44:32
не представляю))

Artem
19.07.2018
22:49:03
Давай на Паскале сразу, че ты.
а чего питон классный язык)

Cenator
19.07.2018
22:49:38
Без let/const нормальному человеку невозможно писать

fetch - инструмент, axios - библиотека
Обертка пишется в 50 строк, экзайос весит несколько килобайт

Artem
19.07.2018
22:50:39
Cenator
19.07.2018
22:51:09
старое доброе value VALUE)
Линтер подскажет?

Google
Cenator
19.07.2018
22:51:39
Или компилятор

Artem
19.07.2018
22:51:45
Cenator
19.07.2018
22:51:52
не понял,
Не мутировать VALUE

Artem
19.07.2018
22:52:06
Не мутировать VALUE
а чего б не подсказал бы?)

Cenator
19.07.2018
22:52:20
а чего б не подсказал бы?)
А если нет линтера?

В жс просто еррор будет

Artem
19.07.2018
22:52:32
а если комп сгорел?)

Admin
ERROR: S client not available

Artem
19.07.2018
22:52:52
const obj = {}

Cenator
19.07.2018
22:52:53
Не ну завязываться на инструмент не стоит

Artem
19.07.2018
22:52:57
дофига он тебе подскажет

Cenator
19.07.2018
22:53:17
Ты не напишешь obj = lol

Artem
19.07.2018
22:53:20
let,const сахар в плане типизации

Cenator
19.07.2018
22:53:37
В питоне изи

И ищи потом где мутировал ссылку

Abu
19.07.2018
22:54:20
Иммутабельность - наше все.

Artem
19.07.2018
22:54:59
В питоне изи
так же будет линтером, как и в js

ну блин, его еще нет и вероятней появления во фронте мала, а мы тут уже воюем)

Cenator
19.07.2018
22:55:41
И надеюсь что отовсюду уйдет)

Google
Cenator
19.07.2018
22:55:58
Либо лет конст завезут

Artem
19.07.2018
22:57:27
да не в машине леарнинг, научных расчетах, бэкэнде он плотно засел)

вообще у каждого языка свои плюс, вот к примеру смотри какая красота в R

numbers <- c(1, -1, 3, -2, 0, NaN) positives <- numbers[numbers>0 & !is.nan(numbers)] negatives <- numbers[numbers<0 & !is.nan(numbers)]

векторизация вообще огонь)

my_function <- function(args) { return(args) } my_function(10)

функции, аля js, если только странный символ присваивания отбросить)

Дмитрий
20.07.2018
02:33:36
Зачем писать return, компилятор сам не поймет где он?

let foo = { let bar = 10; bar; }; всё что в блоке последнее — становится return, изи

Kirill
20.07.2018
04:07:50
Реализую плейсхолдер. Есть экшн, оповещающий сагу о необходимости начать загрузку. Сага после загрузки данных диспатчит экшен в редьюсер о успешной загрузки. В каком месте можно дать знать компоненту производящему рендер загруженных данных, что загрузка идёт и надо показать спинер? Можно ли для этого считывать экшен в редьюсере, предназначенный для саги и переключать флажок fetching?

Kirill
20.07.2018
05:15:07
> Есть экшн, оповещающий сагу о необходимости начать загрузку В редьюсере на этот экшен навешиваешь, как выше сказали, isLoading: true, после успешного выполнения или нет isLoading: false
Это я понимаю. Тут вопрос немного в другом. Работая с танками, считывал в редьюсере оба экшена - экшен оповещающий о начале загрузки и экшен, говорящий о том, что данные пришли. Но в сагах, сначала диспачится экшен для саги, а редьюсер начинает работу только, когда данные пришли. ВОПРОС: правильно ли будет обрабатывать экшен type: "FETCHING" в редьюсере, если этот же экшен считывается сагой?

То есть, диспачится экшен type: "FETCHING" и вотчер-сага говорит рабочей саге начать загрузку нужных данных, после этот же экшен type: "FETCHING" доходит до редьюсера и говорит что надо переключить флажок. Это нормально или стоит делать как-то иначе?

Тима
20.07.2018
05:30:00
Всем добрый день, не подскажите хороший ресурс с которого можно было бы начать обучение React? Пока прохожу курс на freecodecamp.org

Cenator
20.07.2018
05:38:21
react.express

Тима
20.07.2018
05:40:06
react.express
Большое вам спасибо.

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