Re-frame 中的 reg-event-db、reg-event-fx 和 reg-event-ctx 有什么区别?

埃尔图鲁尔·切廷

3个事件FNS重制帧,我可以做两个同样的事情reg-event-dbreg-event-fx

是什么之间的主要区别reg-event-dbreg-event-fxreg-event-ctx

我什么时候应该使用reg-event-fxover reg-event-db,反之亦然。

泰勒伍德

简短回答:它们代表注册事件处理程序的三个抽象级别。

reg-event-dbreg-event-fx. 当您的处理程序只关心db值时,那么reg-event-db使用起来最方便;您可以编写相同的处理程序,reg-event-fx但您必须:db从处理程序的输入中获取值。这是注册事件处理程序的最常见情况。

如果您的处理程序需要访问协同效应/产生效果,那么您将使用reg-event-fx从处理程序的输入中获取:coeffects值(:db如有必要)。一个常见的用例是当您需要访问浏览器存储(例如 cookie、本地存储)但希望让您的处理程序没有副作用时。文档有一个例子

reg-event-ctx是一种甚至更低级别的事件处理程序类型,它接收整个context,但这很少是您想要用来注册事件处理程序的。从文档:This form of registration is almost never used.

这是一个示例上下文映射:

{:coeffects {:event [:some-id :some-param]
             :db    <original contents of app-db>}

 :effects   {:db    <new value for app-db>
             :dispatch  [:an-event-id :param1]}

 :queue     <a collection of further interceptors>
 :stack     <a collection of interceptors already walked>}
  • reg-event-db处理程序只被赋予:coeffects -> :db值,它们的返回值通知:effects -> :db
  • reg-event-fx处理程序被赋予整个:coeffects值,它们的返回值通知:effects
  • reg-event-ctx 处理程序被传递(并返回)整个上下文映射

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

verilog模块中的reg和wire有什么区别

来自分类Dev

“ reg save”和“ reg export”之间的区别?

来自分类Dev

reg [7:0] a [3:0] 和 reg [7:0] a [0:3] 有什么区别

来自分类Dev

postgresql中的Trigger和Event Trigger有什么区别?

来自分类Dev

postgresql中的Trigger和Event Trigger有什么区别?

来自分类Dev

Specman UVM:write_reg {.field == 2;};和之间有什么区别?和write_reg_fields?

来自分类Dev

在wxPython中,event.Skip()和event.Veto()有什么区别?

来自分类Dev

node.js中的addListener(event,listener)和on(event,listener)方法之间有什么区别?

来自分类Dev

在wxPython中event.Skip()和event.Veto()有什么区别?

来自分类Dev

SED和Reg Exp

来自分类Dev

reg exp: "if" 和单个 "="

来自分类Dev

reg的值与reg的地址之间的区别

来自分类Dev

systemverilog中的over reg有什么优势?

来自分类Dev

NetSuite 的 User Event 脚本中的 oldRecord 和 newRecord 有什么区别?

来自分类Dev

TextUpdate和TextChanged Event有什么区别?

来自分类Dev

event-stream.through和event-stream.map有什么区别

来自分类Dev

高图:event.target和event.currentTarget有什么区别

来自分类Dev

reg卸载和新密钥

来自分类Dev

为什么我们在控制器类中添加 @ModelAttribute("r") Reg reg?

来自分类Dev

在.bat文件中启动.reg

来自分类Dev

用CMP reg,0和OR reg,reg测试寄存器是否为零?

来自分类Dev

Windows XP中的REG QUERY和重音字符

来自分类Dev

在Windows 10中永久禁用休眠和睡眠的工具或.reg

来自分类Dev

在 output 和 reg 中声明的输出都必须有位数吗?

来自分类Dev

在systemverilog中使用初始块与初始化reg变量有什么区别?

来自分类Dev

在2块中始终更改reg的值的提示是什么?

来自分类Dev

投射对象时event.getItem()和comboBox.getSelectedItem()有什么区别

来自分类Dev

JavaFX中的fx:id和id:有什么区别?

来自分类Dev

关于loadrunner中的web_reg_find()

Related 相关文章

  1. 1

    verilog模块中的reg和wire有什么区别

  2. 2

    “ reg save”和“ reg export”之间的区别?

  3. 3

    reg [7:0] a [3:0] 和 reg [7:0] a [0:3] 有什么区别

  4. 4

    postgresql中的Trigger和Event Trigger有什么区别?

  5. 5

    postgresql中的Trigger和Event Trigger有什么区别?

  6. 6

    Specman UVM:write_reg {.field == 2;};和之间有什么区别?和write_reg_fields?

  7. 7

    在wxPython中,event.Skip()和event.Veto()有什么区别?

  8. 8

    node.js中的addListener(event,listener)和on(event,listener)方法之间有什么区别?

  9. 9

    在wxPython中event.Skip()和event.Veto()有什么区别?

  10. 10

    SED和Reg Exp

  11. 11

    reg exp: "if" 和单个 "="

  12. 12

    reg的值与reg的地址之间的区别

  13. 13

    systemverilog中的over reg有什么优势?

  14. 14

    NetSuite 的 User Event 脚本中的 oldRecord 和 newRecord 有什么区别?

  15. 15

    TextUpdate和TextChanged Event有什么区别?

  16. 16

    event-stream.through和event-stream.map有什么区别

  17. 17

    高图:event.target和event.currentTarget有什么区别

  18. 18

    reg卸载和新密钥

  19. 19

    为什么我们在控制器类中添加 @ModelAttribute("r") Reg reg?

  20. 20

    在.bat文件中启动.reg

  21. 21

    用CMP reg,0和OR reg,reg测试寄存器是否为零?

  22. 22

    Windows XP中的REG QUERY和重音字符

  23. 23

    在Windows 10中永久禁用休眠和睡眠的工具或.reg

  24. 24

    在 output 和 reg 中声明的输出都必须有位数吗?

  25. 25

    在systemverilog中使用初始块与初始化reg变量有什么区别?

  26. 26

    在2块中始终更改reg的值的提示是什么?

  27. 27

    投射对象时event.getItem()和comboBox.getSelectedItem()有什么区别

  28. 28

    JavaFX中的fx:id和id:有什么区别?

  29. 29

    关于loadrunner中的web_reg_find()

热门标签

归档