Blazor 中的状态管理选项

Posted

技术标签:

【中文标题】Blazor 中的状态管理选项【英文标题】:Options for State Management in Blazor 【发布时间】:2021-08-02 08:40:56 【问题描述】:

Blazor 中有哪些库/技术可用于 webassembly (wasm) 的状态管理。

很高兴了解不同方法的优缺点。

【问题讨论】:

【参考方案1】:

Redux (Fluxor)

Redux/Flux 模式已成为 JS word 中状态管理的佼佼者;因此采用这种最佳做法是有意义的。

幸运的是,已经有一个 Fluxor library 可以做到这一点;它确实拥有最多的 github 明星 379;虽然它仍然是一个相对较新的领域;因此,以后最常用的方法还有待观察。

video 和 source code 有一个很棒的介绍

官方文档:

状态、动作和化简器 效果 Redux 开发工具

一个深入的article。

Blazor 状态

Blazor-State

优点:使用 MediatR 进行消息传递

另见

状态管理方法概述

https://chrissainty.com/mobile-blazor-bindings-state-management-and-data/

https://jonhilton.net/blazor-state-management/

https://docs.microsoft.com/en-us/aspnet/core/blazor/state-management

很好,但主要是消息传递:https://jasonwatmore.com/post/2020/07/30/aspnet-core-blazor-webassembly-communication-between-components

关键字:在 blazor wasm webassembly 组件之间传递数据子父属性事件处理

【讨论】:

【参考方案2】:

Blazor 应用是基于 .Net BCL 库的 C# 应用。我们不需要模仿 javascript 世界为克服自身缺陷而创造的东西。 C# 可以使用静态成员缓存任何你想要的东西。

【讨论】:

当我告诉他们在 Blazor 中做 Blazory 的事情时,有相当多的人生我的气。 如果您能提供一个示例,说明如何使用静态成员进行状态管理以完成 OP 的要求(或指向一些文档或指导),我将非常感激,谢谢! 如果您使用过 C#,您就使用过静态成员。它在 blazor 中的工作方式与在任何其他 C# 应用程序中的工作方式相同

以上是关于Blazor 中的状态管理选项的主要内容,如果未能解决你的问题,请参考以下文章

声明的状态管理如何在 Blazor Server 中工作?

当 Azure 应用服务上的“仅 HTTPS”选项处于打开状态时,无法切换 Blazor 应用(在同一托管下)

Vue状态管理

Vue状态管理

Blazor中的无状态组件

计算属性不更新不同选项卡中的 UI