【发布时间】:2021-05-07 06:42:49
【问题描述】:
我正在构建一个 Blazor 应用程序,需要在应用程序启动时加载一些初始数据,以便我可以将数据放入 CascadingPerameter 以供其他组件使用。
我想知道调用服务来读取这些数据的最佳位置在哪里?
【问题讨论】:
标签: blazor webassembly
我正在构建一个 Blazor 应用程序,需要在应用程序启动时加载一些初始数据,以便我可以将数据放入 CascadingPerameter 以供其他组件使用。
我想知道调用服务来读取这些数据的最佳位置在哪里?
【问题讨论】:
标签: blazor webassembly
一般而言,您应该将服务用于数据。服务只是通过依赖注入访问的类的一个实例。任何 UI 组件都可以访问该类的相同实例。服务的类型取决于数据的范围。如果它是应用程序范围内的并且在 SPA 会话期间得到修复,请创建一个作用域或单例服务(取决于您运行的是 WASM 还是服务器)并通过依赖注入共享它。如果是“页面”范围,请使用瞬态服务。
想想 UI - 组件、数据 - 服务。
有关服务和 DI 的 MS 文档是 here
【讨论】:
我建议您将服务注入 MainLayout 组件,并在 OnInitialized(Async) 方法中读取数据。但是如果服务可以在你的应用程序初始化的那个阶段读取数据,为什么你不能将服务注入到需要它的组件中,而不是级联数据呢?
【讨论】: