1.简单派遣事件
我们将看一个带有示例用法的简单调度事件。
(ns myapp.events
(:require [re-frame.core :refer [reg-event-db]]))
(reg-event-db
:enable-feature-toggle
(fn [db [_ _]]
(assoc-in db [:global :enable-feature-toggle] true)))
这是创建一个名为:enable-feature-toggle
的事件,它将在 db {:global {:enable-feature-toggle true}}
中创建一个条目。一个分贝就像是保留事件结果的全局专卖店。然后可以订阅这些结果,并用于修改元素的状态,我们将在 Simple Subscribe Event 示例中看到。
在创建事件之后,我们实际上必须在我们的代码/ UI 组件中的某处调度事件以使用它。例如,如果我们想在点击 div 时执行某些操作,我们可以触发点击事件。
(ns myapp.components.page-header
(:require [myapp.events]
[re-frame.core :refer [dispatch]]))
(defn cljs-header []
[:div {:class "cljs-header"
:on-click #(dispatch [:enable-feature-toggle])} "Click Me"])
一旦我们点击 div,就会触发:enable-feature-toggle 事件,并在 db 中设置一个新值。