Fork me on GitHub
#reagent
<
2019-07-02
>
athomasoriginal00:07:13

Question for the room: What is everyones preference for binding event handlers in Reagent components? Do you do it in the component or outside or when do you extract it from the component itself. e.g.

(defn form-2 
  []
  (let [atom           (r/atom ...)
        event-handler #(...)]
    (fn []
      (let []
        [complex-component {:on-click event-handler}]))))
(defn form-2 
  []
  (let [atom           (r/atom ...)]
    (fn []
      (let [event-handler #(...)]
        [complex-component {:on-click event-handler}]))))
(defn event-handler []
  ...)

(defn form-2 
  []
  (let [atom           (r/atom ...)]
    (fn []
      [complex-component {:on-click event-handler}])))

mrchance07:07:54

Isn't the second way to do it an anti-pattern, because the functions identity will be different every time and trigger a re-render? Apart from that, I agree with @U4YGF4NGM

athomasoriginal00:07:54

It can be, yes. Depends on whether or not it’s causing performance issues.

lilactown04:07:01

I do purely whatever I feel like is most readable

👍 4