Size: a a a

Clojure — русскоговорящее сообщество

2020 June 17

AG

Alexey Golda in Clojure — русскоговорящее сообщество
The2lb3oz4dr10½grOfHedgehogs
Там и паредит и паренфер
там внизу есть переключалка даже
источник

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
Tim Plotnikov
Народ, привет!
А подскажите пожалуйста по re-frame:
Вот есть у меня логин форма и по нажатию кнопки отправляется запрос и я хочу показывать загрузку. Надо ли мне этот стейт загрузки писать в app-db? Для меня это звучит не очень логично т.к. тогда на каждый компонент появляется ключ в глобальном стейте, хотя эти компоненты и живут 1% времени жизни приложения
делай счетчик лоадер и на отправку запроса увеличивай на 1, на получение ответа уменьшай на 1, рисуй загрузку при лоадере > 0
источник

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
ну и ясное дело, это только для тех запросов, который должны показывать загрузку :)
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Kostyantin Randomname
делай счетчик лоадер и на отправку запроса увеличивай на 1, на получение ответа уменьшай на 1, рисуй загрузку при лоадере > 0
Только это не сработает если у каких-то компонентов свои лоадеры?
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
А вообще прикольно, да)
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Kostyantin Randomname
делай счетчик лоадер и на отправку запроса увеличивай на 1, на получение ответа уменьшай на 1, рисуй загрузку при лоадере > 0
Я бы счетчик положил в глобальный стейт

Ещё и значение этой формы (и всех остальных) можно хранить в этом же глобальном стейте

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

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
А в глобальном можно нормально организовать данные
источник

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
ну если у тебя лоадер только на одной плашечке - то локально, а если на весь екран то глобально конечно
источник

IS

Ilshat Sultanov in Clojure — русскоговорящее сообщество
Tim Plotnikov
Народ, привет!
А подскажите пожалуйста по re-frame:
Вот есть у меня логин форма и по нажатию кнопки отправляется запрос и я хочу показывать загрузку. Надо ли мне этот стейт загрузки писать в app-db? Для меня это звучит не очень логично т.к. тогда на каждый компонент появляется ключ в глобальном стейте, хотя эти компоненты и живут 1% времени жизни приложения
На практике в сложном UI на мой взгляд лучше в глобальный стейт ложить с неймспейснутым ключом. При окончании запроса просто убираешь этот ключ. Также можно стейт сгруппировать по страницам приложения и при переходах на другие страницы очищать стейт. А то, что глобально для всех страниц хранить отдельно без страничной группировки
источник

AG

Anatoliy Guliy in Clojure — русскоговорящее сообщество
Tim Plotnikov
Народ, привет!
А подскажите пожалуйста по re-frame:
Вот есть у меня логин форма и по нажатию кнопки отправляется запрос и я хочу показывать загрузку. Надо ли мне этот стейт загрузки писать в app-db? Для меня это звучит не очень логично т.к. тогда на каждый компонент появляется ключ в глобальном стейте, хотя эти компоненты и живут 1% времени жизни приложения
В процессе работы с re-frame выкристализовалось такое правило: - если кусочек стейта изолирован внутри и никому не нужен кроме одного конкретного компонента (показан хинт на иконке) и тебе не страшно потерять его при рефреше компонента - храни в локальном ratom. Во всех остальных случаях в app-db. В твоем конкретном случае - надо хранить глобально исходя из второй части утверждения.
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Отлично, спасибо за советы!
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Tim Plotnikov
Народ, привет!
А подскажите пожалуйста по re-frame:
Вот есть у меня логин форма и по нажатию кнопки отправляется запрос и я хочу показывать загрузку. Надо ли мне этот стейт загрузки писать в app-db? Для меня это звучит не очень логично т.к. тогда на каждый компонент появляется ключ в глобальном стейте, хотя эти компоненты и живут 1% времени жизни приложения
Ну появляются и появляются в чем проблема?
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Идея рефрейм в том чтобы хранить стейт централизованно
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Anton Chikin
Идея рефрейм в том чтобы хранить стейт централизованно
Идея идеей, но иногда нужно следовать здравому смыслу) Если у меня например какой-то локальный индикатор, почему бы его не хранить в реактовском стейте компонента?
источник

IS

Ilshat Sultanov in Clojure — русскоговорящее сообщество
Tim Plotnikov
Идея идеей, но иногда нужно следовать здравому смыслу) Если у меня например какой-то локальный индикатор, почему бы его не хранить в реактовском стейте компонента?
лучше единообразно, не то придётся постоянно думать, а куда же я стейт спрятал
источник

IS

Ilshat Sultanov in Clojure — русскоговорящее сообщество
когда компонентов мало проблем нет, но обычно это не так)
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Ilshat Sultanov
лучше единообразно, не то придётся постоянно думать, а куда же я стейт спрятал
А вот это хороший аргумент
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Tim Plotnikov
Народ, привет!
А подскажите пожалуйста по re-frame:
Вот есть у меня логин форма и по нажатию кнопки отправляется запрос и я хочу показывать загрузку. Надо ли мне этот стейт загрузки писать в app-db? Для меня это звучит не очень логично т.к. тогда на каждый компонент появляется ключ в глобальном стейте, хотя эти компоненты и живут 1% времени жизни приложения
я весь io стейт храню глобально, так легче тесты писать и отлаживать с re-frisk
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Иван Федоров
я весь io стейт храню глобально, так легче тесты писать и отлаживать с re-frisk
для каких-то единичных компонент храню view-state локально (обычно поля ввода), чтобы не мучить сотни подписок сотнями событий, обновляю глобальный стейт на условный коммит (blur/timeout), хотя может я не очень прав тут.
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
В паре десятков полноценных SPA проектов в которых мне приходилось участвовать глобальный стейт нужен для двух вещей - пользовательские данные и навигация и в крайнем случае ещё индивидуальные настройки интерфейса
источник