Size: a a a

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

2021 March 16

EP

Eugene Potapenko in Clojure — русскоговорящее сообщество
я раньше did-mount страдал, потом мне объяснили что это антипатерн и айайай
источник

EP

Eugene Potapenko in Clojure — русскоговорящее сообщество
лучше все же роутер и нормальный re-frame
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Eugene Potapenko
погляди kee-frame
контролер берет данные из урла, кидает эвент, данные грузишь.
все от роутера.
данные по умолчанию в дб все равно где-то нужно брать, можно захатчить конфиг в виде переменной в  js и генерить со страницы, например. Если уж сильно нужно до загрузки взять что-то. Но там обычно всякую конфигурацию передают. Данные для страниц уже качай нормально по ресту.
мы так делали единственное неудобство в том что есть вьюхи, которые много где используются и им надо одни и те же данные подтягивать
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
по урлам такое не оч удобно раскладывать
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Т.е. у нас есть превью некой сущности, которое мы втыкаем везде где встречается эта сущность.
источник

AG

Alexey Golda in Clojure — русскоговорящее сообщество
Eugene Potapenko
я раньше did-mount страдал, потом мне объяснили что это антипатерн и айайай
мне для поиграться сойдет дид моунт спасибо
источник

EP

Eugene Potapenko in Clojure — русскоговорящее сообщество
Anton Chikin
мы так делали единственное неудобство в том что есть вьюхи, которые много где используются и им надо одни и те же данные подтягивать
ну да вечная борьба с дублированием логики. каждый решает это сам. но контрооллер - это лишь триггер на урл. можно сразу несколько таких триггеров запускать и пусть какие данные грузятся в разных вьюхах одинаково.
еще неудобство - когда вьюхи вложенные и нужно что-то общее использовать. нужно загрузить одни данные , а потом грузить другие данные уже основываясь на этих подгруженных данных. тут либо всякие контексты и очереди велосипедить либо смотреть уже на graphql....
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Eugene Potapenko
ну да вечная борьба с дублированием логики. каждый решает это сам. но контрооллер - это лишь триггер на урл. можно сразу несколько таких триггеров запускать и пусть какие данные грузятся в разных вьюхах одинаково.
еще неудобство - когда вьюхи вложенные и нужно что-то общее использовать. нужно загрузить одни данные , а потом грузить другие данные уже основываясь на этих подгруженных данных. тут либо всякие контексты и очереди велосипедить либо смотреть уже на graphql....
по-хорошему бы иметь некий per-view механизм чтобы роутер сам собирал кому что надо
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
но не понятно как это сделать
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
типа onViewDidMount чтобы каждая вьюха куда-то складывала свои хотелки по запросам
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
а потом роутер это как-то собирал и отправлял
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
в принципе это достижимо - у реагента есть калбек на конец рендеринга
источник

D

Dos in Clojure — русскоговорящее сообщество
fulcro не так?
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Dos
fulcro не так?
там я так понял так, но за это ты не можешь просто вьюху отрендерить - тебе надо все вьюхи задавать через какие-то мапы
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
(defsc Root [this {:ui/keys [number]}]
 {:query         [:ui/number]
  :initial-state {:ui/number 0}}
 (dom/div
   (dom/h4 "This is an example.")
   (dom/button {:onClick #(comp/transact! this [(bump-number {})])}
     "You've clicked this button " number " times.”)))
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
те это уже не реагент вью обычный а какая-то опердень которую специально надо процессить
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
как-то при рендеринге надо где-то все это складывать потом читать
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
короче надо будет свой hiccup писать который будет собирать инфу с вьюх
источник

KR

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

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
Anton Chikin
как-то при рендеринге надо где-то все это складывать потом читать
У вас проблем с инвалидацией кеша нет?
источник