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