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 中设置一个新值。