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 中設定一個新值。