MvvmCross V5 ViewModel 生命周期
MvvmCross V5 ViewModel Lifecycle
我正在考虑从 MvvmCross 的版本 4 升级到版本 5,我有几个关于 ViewModel 生命周期的问题。
我熟悉 V4 生命周期(Construct、Init、ReloadState 和 Start),但不确定它们如何映射到 V5
我的问题是:
我了解 Prepare 和 Initialize,但哪一个相当于 Start()?
SaveState
和 ReloadState
方法在 V5 ViewModel 生命周期中是否仍然可用?它会像以前一样工作吗?如果没有,我该如何管理?
在旧版本的 MvvmCross 中,我们有 Init
用于设置变量,Start
用于执行更重的(可能是异步的)工作。 Start 是一个 void 方法,可以变成 async void
,这一点都不好。
较新的版本现在有 Prepare
用于以静态类型方式处理传递的参数,Initialize
用于 运行 异步代码,顾名思义,初始化您的 ViewModel。在我看来,与以前的方法相比,这些方法的名称和客观上更好用。
关于你的第二个问题,即使使用 new navigation service.
,SaveState 和 ReloadState 仍然可以正常工作
更多疑问可以阅读migration guide and the ViewModel lifecycle docs
我正在考虑从 MvvmCross 的版本 4 升级到版本 5,我有几个关于 ViewModel 生命周期的问题。
我熟悉 V4 生命周期(Construct、Init、ReloadState 和 Start),但不确定它们如何映射到 V5
我的问题是:
我了解 Prepare 和 Initialize,但哪一个相当于 Start()?
SaveState
和ReloadState
方法在 V5 ViewModel 生命周期中是否仍然可用?它会像以前一样工作吗?如果没有,我该如何管理?
在旧版本的 MvvmCross 中,我们有 Init
用于设置变量,Start
用于执行更重的(可能是异步的)工作。 Start 是一个 void 方法,可以变成 async void
,这一点都不好。
较新的版本现在有 Prepare
用于以静态类型方式处理传递的参数,Initialize
用于 运行 异步代码,顾名思义,初始化您的 ViewModel。在我看来,与以前的方法相比,这些方法的名称和客观上更好用。
关于你的第二个问题,即使使用 new navigation service.
,SaveState 和 ReloadState 仍然可以正常工作更多疑问可以阅读migration guide and the ViewModel lifecycle docs