响应式编程:从 Re-frame 到多平台应用
1. Re-frame 基础与应用
在响应式编程中,Re-frame 是一个强大的工具,它可以为 Reagent 应用添加合适的事件处理机制,实现事件与多个状态更新的桥接。
1.1 Re-frame 核心函数
Re-frame 提供了一系列核心函数,用于构建响应式应用。以下是一些常用函数及其用途:
| Re-frame 函数 | 用法 | 目标 |
| — | — | — |
| rf/dispatch-sync
| (rf/dispatch-sync [:initialize])
| 向事件系统分发事件,可一次性分发多个事件 |
| rf/reg-event-db
| (rf/reg-event-db :initialize (fn [_ _] {:time (js/Date.) }))
| 在事件系统中注册事件,接收事件名称和一个 [state, event-params]
函数,返回更新后的状态 |
| rf/reg-sub
| (rf/reg-sub :raw-time (fn [db _] (.toTimeString (-> db :time))))
| 注册类似于原子的对象,读取数据库状态并返回值 |
| rf/subscribe
| @(rf/subscribe [:raw-time])