This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-03-03
Channels
- # bangalore-clj (2)
- # beginners (29)
- # boot (52)
- # cider (4)
- # clara (3)
- # cljs-dev (34)
- # cljsjs (7)
- # cljsrn (3)
- # clojure (71)
- # clojure-austin (1)
- # clojure-dev (5)
- # clojure-france (20)
- # clojure-russia (51)
- # clojure-spec (9)
- # clojure-uk (20)
- # clojurescript (131)
- # core-async (56)
- # core-logic (6)
- # cursive (50)
- # datascript (19)
- # datomic (16)
- # dirac (118)
- # emacs (100)
- # events (4)
- # hoplon (14)
- # incanter (1)
- # jobs (7)
- # jobs-discuss (96)
- # jobs-rus (21)
- # lein-figwheel (5)
- # leiningen (21)
- # off-topic (11)
- # om (45)
- # onyx (42)
- # pamela (1)
- # pedestal (22)
- # portland-or (3)
- # re-frame (8)
- # reagent (5)
- # ring (9)
- # robots (1)
- # spacemacs (14)
- # specter (28)
- # sql (2)
- # untangled (165)
а может ктонить пояснить базовую вещь, вот в реакте есть shouldComponentUpdate и два типа компонентов Component и PureComponent, второго в shouldComponentUpdate используется shallow сравнение statе и props, для первого всегда возвращается true по дефалту, а как вообще определятся поменялся ли стейт? тоесть как сравнивается стейт до вызова shouldComponentUpdate
дак ты же сам вызываешь setState setProps, поэтому первый раз реакт и понимает когда чо произошло. Или я не понял вопроса
ну вот будет ли рендер как раз определяет реализация shoudComponentUpdate
тоесть подефолу если я вызову setState и передам идентичный стейт то все равно будет ререндер?
дак ты попробуй - репл сила 🙂
shouldComponentUpdate - метод, в котором ты сам наваливаешь логику, чтобы оптимально ре-рендерилось, если тебя не устраивает дефолтное принятие решения
чуваки, а как вы хэндлите случай когда надо много последовательных http-запросов сделать? типо 6 штук, каждый на основе результата предыдущего? ну и с ретраями и эррор хэндлингом?
@misha дефалтное решение для component это всегда true, даже если стейт по сути не изменился, так?
у тебя весь аппликейшн в общем случае - последовательные запросы, зависящие от результата предыдущих
@andfadeev не знаю, за меня @tonsky в роме порешал всё иногда только специально дописываю rum/static, где точно знаю, что выхлоп зависит только от аргументов (и то это теперь якобы по-дефолту так)
shouldComponentUpdate(nextProps, nextState) Use shouldComponentUpdate() to let React know if a component's output is not affected by the current change in state or props. The default behavior is to re-render on every state change, and in the vast majority of cases you should rely on the default behavior.
@artemyarulin ^ help)
>state change поменять стейт можно только через вызов setState
https://facebook.github.io/react/docs/react-component.html#shouldcomponentupdate >shouldComponentUpdate() is invoked before rendering when new props or state are being received.
@olegakbarov еще можно промисы, всякие future ну и вообще руками написать асинхронный фор/loop не очень сложно. кор.асинк ради одного раза тащить не надо, он сложный по началу и не имеет встроенной поддержки ошибок. https://github.com/funcool/promesa очень хороша
- если метод заоверайдили - его вызвать - если пур компонент (пур=тру) - поверхностно сравнить - по-умолчанию вернуть тру.
@olegakbarov: promesa
спс, сейчас гляну
а я вообще нативные промисы юзаю, без promesa)
а где посмотреть какие-то референсы?
просто лесенка из 6 колбэков это такое
(-> (fetch 'some/api')
(.then #(fetch 'another/api'))
(.then #(fetch 'another/one/api')))
вот и все))это cljs?
я в контексте jvm сейчас интересовался
надо было пояснить 😅
Thread.new
😄
мож future которое создает 6 других feature и ждет их последовательно)
not sounds like a plan)
not sounds? 😕
ну я рассчитывал, что есть более элегантные решения
@olegakbarov ну можно сделать функу, которая будет результат хттп запроса в канал и тогда будет
(-> data1
(mk-req url1)
(async/<!)
transform-results1
(mk-req url2)
...
)
о, да я вот что-то в таком жанре ожидал