【问题标题】:Where is the best place to load initial data on Blazor WASM start up在 Blazor WASM 启动时加载初始数据的最佳位置在哪里
【发布时间】:2021-05-07 06:42:49
【问题描述】:

我正在构建一个 Blazor 应用程序,需要在应用程序启动时加载一些初始数据,以便我可以将数据放入 CascadingPerameter 以供其他组件使用。

我想知道调用服务来读取这些数据的最佳位置在哪里?

【问题讨论】:

    标签: blazor webassembly


    【解决方案1】:

    一般而言,您应该将服务用于数据。服务只是通过依赖注入访问的类的一个实例。任何 UI 组件都可以访问该类的相同实例。服务的类型取决于数据的范围。如果它是应用程序范围内的并且在 SPA 会话期间得到修复,请创建一个作用域或单例服务(取决于您运行的是 WASM 还是服务器)并通过依赖注入共享它。如果是“页面”范围,请使用瞬态服务。

    想想 UI - 组件、数据 - 服务。

    有关服务和 DI 的 MS 文档是 here

    【讨论】:

    • 完全明白。我有一个服务来做装载。我想做的是在应用程序启动时预先加载几兆数据。这是一个长时间运行的应用程序,我希望在页面之间移动时尽可能缩短 API 事务。我已经确定了一项服务,该服务将在第一次获取时缓存数据。不是很喜欢这个,但我想在我有更多时间考虑之前必须这样做。
    • NP。如果您正在寻找想法 Server Weather SiteWAS Weather Site 可能有助于产生一些想法。代码有点陈旧,我正在对 Net5 进行重大修订。
    【解决方案2】:

    我建议您将服务注入 MainLayout 组件,并在 OnInitialized(Async) 方法中读取数据。但是如果服务可以在你的应用程序初始化的那个阶段读取数据,为什么你不能将服务注入到需要它的组件中,而不是级联数据呢?

    【讨论】:

    • 级联数据的原因是因为每个组件都需要访问它。我确实尝试将它放入 MainLayout 但遇到了一些未定义的问题。不记得是哪个了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多