【发布时间】:2021-01-03 09:33:18
【问题描述】:
来自Reagent introduction,一个简单的定时器组件:
(defn timer-component []
(let [seconds-elapsed (r/atom 0)]
(fn []
(js/setTimeout #(swap! seconds-elapsed inc) 1000)
[:div
"Seconds Elapsed: " @seconds-elapsed])))
下面写着
前面的例子还用到了 Reagent 的另一个特性:一个组件 函数可以返回另一个函数,用于执行实际的 渲染。使用与 第一个。
这允许您对新创建的组件进行一些设置 无需诉诸 React 的生命周期事件。
有人可以提醒我这里的基本原理吗?为什么我们需要这个匿名函数?为什么不只是
(defn timer-component []
(let [seconds-elapsed (r/atom 0)]
(js/setTimeout #(swap! seconds-elapsed inc) 1000)
[:div
"Seconds Elapsed: " @seconds-elapsed])))
【问题讨论】:
标签: clojurescript reagent