- 嗯“0.8.0”
我最近开始通过使用om 存储库的示例代码来学习om 。现在,我正在检查多个示例,并且可以理解该程序的行为。
在我点击“+”按钮后,
- 首先,打印“偶数(或奇数)小部件卸载”。
- 接下来,打印“奇数(或偶数)小部件安装”。
但是当我添加以下代码时
(只需将奇偶小部件defmulti
代码更改为defn
代码)
(defn test-widget
[props owner]
(reify
om/IWillMount
(will-mount [_]
(println "Test widget mounting"))
om/IWillUnmount
(will-unmount [_]
(println "Test widget unmounting"))
om/IRender
(render [_]
(dom/div nil
(dom/h2 nil (str "Test Widget: " (:my-number props)))
(dom/p nil (:text props))
(dom/button
#js {:onClick #(om/transact! props :my-number inc)}
"+")))))
并尝试使用此功能而不是test-widget
,结果,没有打印消息...
那么在这种情况下,defmulti 和 defn 有什么区别呢?这是错误还是正确的行为?
提前致谢。