【问题标题】:Blazor/Electron : Handling close eventBlazor/Electron:处理关闭事件
【发布时间】:2018-11-26 12:41:09
【问题描述】:

我已经开始使用 Blazor/Electron 进行实验性应用。

我已经分叉了这个项目: https://github.com/SteveSandersonMS/BlazorElectronExperiment.Sample

当应用程序关闭时,它需要保存应用程序的状态。 为此,我认为它需要处理关闭事件并在最终关闭之前保存应用程序的状态。

如何处理关闭事件? 您还有其他解决方案吗?

【问题讨论】:

    标签: c# .net electron blazor


    【解决方案1】:

    Blazor live cycle 没有任何方法可以调用OnExit

    一个想法可能是implement IDisposable on your component并致电saveState 来自Dispose

    如果组件实现 IDisposable,则在从 UI 中删除组件时调用 Dispose 方法。

    @using System
    @implements IDisposable
    
    ...
    
    @functions {
        public void Dispose()
        {
            //anti-pattern work around
            //liveCycle OnUnload don't exists
            save_your_state();
        }
    }
    

    免责声明:这种方法是一种反模式,它只是一种解决方法,直到准备好更优雅的解决方案。

    【讨论】:

    • 好主意。但是在组件结束时调用 Dispose,而不是在整个应用程序关闭时调用。
    • @Orwel,是的,不是的。您可以临时创建一个组件,看看我的BlazonConfirm 组件。您可以编写一种“BlazorOnExit”组件,使 BlazorConfirm 成为一次性的。
    • BlazorConfirm 是注册特定 JS 事件的好例子。但是您的第一个答案更简单且有效。这就像 Android 中的保存/恢复状态。
    • @Orwel,我提到了 BlazorConfirm,因为它是一个始终存在并且仅在退出应用程序时死亡一次的组件。 (是对您的评论的回复但在组件结束时始终调用 Dispose,而不是在整个应用程序关闭时调用,我的意思是,您可以编写一个仅 Dispose 一次的组件,在退出 App 和BlazorConfirm 是它的一个示例)问候
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2021-11-18
    • 2015-08-24
    相关资源
    最近更新 更多