@react_js

Страница 4503 из 5115
Roman
28.07.2018
19:44:44
А если ты захочешь изменить название запроса, то придется везде его менять

Spaider
28.07.2018
19:44:45
юзай thunk или сагу

Roman
28.07.2018
19:45:08
А это уже копипаст

Google
Artyom
28.07.2018
19:58:57
я понял ) просто я это еще не пробовал
В оф доке, почему-то, примеры только со статическим контекстом, а по ссылке уже стейт-менеджер, считай

Eugene
28.07.2018
19:59:11
Artyom
28.07.2018
19:59:23
смысл стора хранить данные
В чем смысл стора ?

Spaider
28.07.2018
20:00:25
смысл стора хранить данные
глобальные переменные справляются с этим

Eugene
28.07.2018
20:01:00
В чем смысл стора ?
в хранении состояния приложения

Artyom
28.07.2018
20:02:38
С "хранением" и window справится

Temich
28.07.2018
20:04:51
Смысл стора хранить динамические данные

Eugene
28.07.2018
20:05:59
Artyom
28.07.2018
20:07:01
уверен?
Можно еще window.location.href

Дмитрий
28.07.2018
20:07:13
В чем смысл стора ?
Ни в чём, его нет

Eugene
28.07.2018
20:07:27
Можно еще window.location.href
угу. в локалсторадж

Google
Temich
28.07.2018
20:07:31
Если так подумать, то без состояний, react - не react

Kendr
28.07.2018
20:08:39
Ни в чём, его нет
Ночная фелософия?

Дмитрий
28.07.2018
20:08:55
Temich
28.07.2018
20:10:57
Но без state не будет setState *тут должен быть мем с негром*

Дмитрий
28.07.2018
20:12:26
Поэтому это то, что определяет реакт, через его недостатки)

Kendr
28.07.2018
20:13:14
Ну и да, не стоит забывать, что стейт в реакте — объект. Махровая ооп библиотека.

(не баньте только плиз)

Temich
28.07.2018
20:14:13
Кароч, есть у компонента state. Если мы его будем рендерить (state) и он поменяется, то компонент заново отредериться и покажет актуальный state

Дмитрий
28.07.2018
20:14:45
Ну и да, не стоит забывать, что стейт в реакте — объект. Махровая ооп библиотека.
Не, это так не работает, нельзя показать пальцем на любой объект и сказать что это ооп

Дмитрий
28.07.2018
20:15:43
Проблема в том, что setState императивный, а поэтому непредсказуемый для библиотеки, это мешает делать клёвые оптимизации и всячески трепит нервы авторам

Temich
28.07.2018
20:16:29
А вообще redux есть

Дмитрий
28.07.2018
20:17:12
Ну да, есть, но это мало что меняет

Temich
28.07.2018
20:20:00
А вообще redux есть
State не нужон (хотя всё равно нужно создавать контейнер, который имеет состояние взятое из redux, который передаёт обёрнотому им же компоненту свой state, как делает либа react-redux. Как что state всё-таки нужон)

Rustam
28.07.2018
20:23:39
кейсы бывают разные, в моем случае ридакс не особо нужен и хватает контекста и аполо

Max
28.07.2018
20:37:43
Проблема в том, что setState императивный, а поэтому непредсказуемый для библиотеки, это мешает делать клёвые оптимизации и всячески трепит нервы авторам
Кстати setState это необязательный аттрибут для view библиотеки как реакт. Если бы реакт был бы достаточно быстр можно было бы не добавлять setState а оставить только один способ обновить компоненты - через метод updateViews() который аналогичен обновлению рутового компонента ReactDOM.render(<App/>, el), который будет сравнивать виртуальный дом всех компонентов начиная с рута и оставить работу с состоянием на откуп пользовательским библитекам в которых можно реализовать какие угодно концепции на любой вкус и цвет. И получается что реакт вроде как и unopinionated в отличие от angular и vue но все же не до конца со своим setState

Google
Дмитрий
28.07.2018
20:42:22
В эффекторе например нет setState

Max
28.07.2018
20:43:24
В эффекторе например нет setState
а как там обновляются компоненты? через .forceUpdate() ?

Дмитрий
28.07.2018
20:44:20
Сами, ты просто задаешь правила обновления и всё

Если стор реагирует на какой-либо эвент или зависит от подобных данных, то он будет пересчитан

Разница в том, что это можно варьировать, когда и в каком порядке это делать, с setState выбора ты лишаешься, так как факт вызова сетстейта означает безусловное изменение

Max
28.07.2018
20:47:51
updateViews это абсолютно то же самое что и setState
Тут вопрос в скорости. Для крупных приложений оверхед на virtual dom достаточно большой чтобы обновление (реконсайлер) виртуального дома всего приложения на каждое изменение данных начало тормозить. Поэтому большинство библиотек для работы с состоянием (redux, mobx) используют точечный подход - обновление только тех компонентов которые зависят от данных которые изменились

Дмитрий
28.07.2018
20:48:55
Это не вопрос в скорости, это просто аналогичный принцип действия

Если нет императивного setState, то можно планировать действия наперед так как ты знаешь какие у тебя есть варианты развития событий

Дмитрий
28.07.2018
20:56:25
children as a function?
Возможно

есть примеры таких библиотек?
Да https://github.com/zerobias/effector https://codesandbox.io/s/429l33z2w9

Andrey
28.07.2018
21:02:46


что то не сходится пример, но ок

Дмитрий
28.07.2018
21:03:00
Сорян, это пока девелоп бранч

npm install effector@next

Kirill
28.07.2018
21:04:18
Эра Flux подходит к концу, короче.

Дмитрий
28.07.2018
21:04:24
https://github.com/zerobias/effector/blob/develop/src/react/createComponent.js

Эра Flux подходит к концу, короче.
Это более flux чем сам flux

strict one way dataflow

Google
Andrey
28.07.2018
21:13:59
Да https://github.com/zerobias/effector https://codesandbox.io/s/429l33z2w9
есть по сложнее примеры? с запросами, полноценными эпиками?

Да https://github.com/zerobias/effector https://codesandbox.io/s/429l33z2w9
не нашел кстати кода для ssr, получение текущего стора и востановление

Дмитрий
28.07.2018
21:25:20
Andrey
28.07.2018
21:28:26
https://github.com/zerobias/effector/tree/develop/examples/react-ssr
onInject(injectData, order, ({itemList}) => itemList.order)

не очень красиво, особенно если у тебя их 50

но поиграюсь

Дмитрий
28.07.2018
21:28:54
Это простейший хелпер

https://codesandbox.io/s/724n740r8x

Admin
ERROR: S client not available

Andrey
28.07.2018
21:29:21
+ serverSideState не динамический в примере

Дмитрий
28.07.2018
21:29:35
+ serverSideState не динамический в примере
Ты точно внимательно изучил пример?

Там как бы экшны на сервере вызываются предварительно

https://codesandbox.io/s/724n740r8x
Ты там с фетчем пример хотел

cats.js



Принцип — ты создаешь эффекты, чтобы потом вкладывать в них реализацию в зависимости от задач

Например для тестов можно положить другую функцию в use

Andrey
28.07.2018
21:34:10
Ты точно внимательно изучил пример?
src/server/render.js там инициализируются все подписчики import '../app/store/on' кидается injectData(serverSideState) как инитал стейт для сторов и дальше в html(preRendered, serverSideState) кидаешь тот же serverSideState который удет клиенту

либо serverSideState мутируется, либо serverSideState статичный)

Дмитрий
28.07.2018
21:34:51
А в редаксе что со стейтом сервера произойдет?

Google
Дмитрий
28.07.2018
21:35:01
Застрянет и не обновится?

Cenator
28.07.2018
21:35:05
Удалится гарбаж коллектором

Дмитрий
28.07.2018
21:35:06
Окей, я сделаю получше пример

Andrey
28.07.2018
21:35:42
А в редаксе что со стейтом сервера произойдет?
проинициализуются сторы, загрузятся данные и получится новое состояние всех сторон и отдастя клиенту

Дмитрий
28.07.2018
21:35:47
Аналогично

Andrey
28.07.2018
21:36:31
Аналогично
ну, в коде https://github.com/zerobias/effector/blob/develop/examples/react-ssr/src/server/render.js не так )

Дмитрий
28.07.2018
21:36:51
injectData

Andrey
28.07.2018
21:36:54
не собирается состояние сторов а отдается просто serverSideState

Дмитрий
28.07.2018
21:37:15
Ладно, не нравится значит не нравится

Переубеждать не буду

Andrey
28.07.2018
21:37:37
injectData
это создание createEvent('load data to stores') который пойдет по сторам и проинцииализует их

Дмитрий
28.07.2018
21:37:42
injectData — это эвент реализованный рядом в пару строк

Andrey
28.07.2018
21:37:49
Переубеждать не буду
не, мне просто интересно

Дмитрий
28.07.2018
21:37:55
Бросайте свою выученную беспомощность пацаны

Там ничего сложного нигде нет и не должно быть

Чтобы относиться к этому как к чёрному ящику с магией "а она достаточно сильна для эс эс эр?"

Andrey
28.07.2018
21:39:03
там все просто и либо serverSideState мутируется, либо он предается в статичном виде из файла server/render.js

Дмитрий
28.07.2018
21:39:11
Я вызвал эвент

Можешь вызвать свой

Andrey
28.07.2018
21:39:19
либо это простой пример без асинхронных фетр действий на стороне сервера

Дмитрий
28.07.2018
21:39:42
Хорошо, покажи мне пример действий, без реакта, как бы ты это реализовывал

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