我是Blazor和Fluxor的新手,我试图设计使用更好的方法
IActionSubscriber-手动注入、订阅和取消订阅
或
继承FluxorComponent-并使用ActionSubscriber
什么是最好的解决方案?什么是优点和缺点?
从FluxorComponent
继承有几个优点,因为您不需要一直手动调用StateHasChanged
,也不必注入IActionSubscriber
,因为它是免费提供的,而且您不必记得在处理组件时取消订阅。
就功能而言,我认为没有任何区别,只是FluxorComponent
为您处理了一些工作。
我能想到的唯一缺点是,如果从FluxorComponent
继承会使您无法从另一个基本组件类继承。
就我自己而言,我只是继承了FluxorComponent
并离开了。它运行得很好。
从FluxorComponent派生将意味着您的组件自动订阅任何IState<T>
属性上的StateChanged
-当触发时,它将调用InvokeAsync(StateHasChanged
以确保UI更新。
IActionSubscriber
并不是用来确定何时更新UI,而是允许UI捕获没有减少到存储中的数据。例如,要编辑的当前页面的服务器API中的可编辑DTO。