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