以下方法最好的是什么?
外部订阅,提前取消引用
(defn component [msg]
[:p msg]))
(let [msg (rf/subscribe [:msg])]
[component @msg]
外部订阅,延迟 deref
(defn component [msg]
[:p @msg]))
(let [msg (rf/subscribe [:msg])]
[component msg]
内部订阅,提前取消引用
(defn component []
(let [msg @(rf/subscribe [:msg])]
[:p msg])))
内部订阅,延迟 deref
(defn component []
(let [msg (rf/subscribe [:msg])]
[:p @msg])))
当我使用外部订阅保持内部组件纯净时,我可能会得到许多需要通过通常不相关的父级的深层嵌套结构传递的参数。这很容易变得一团糟。
当我订阅内部组件时,它变得不纯,失去了易于测试的能力。
另外,我想知道早期和晚期解除引用之间是否有重要区别,除了reagent/atom
在测试后者时我必须通过。