tho*_*ker 2 navigation prism xamarin.forms
我在 Xamarin Forms 应用程序中使用 Prism Forms 7.x。到目前为止,我在视图模型中使用 INavigatedAware 接口来检查是否发生了进出相应视图模型的导航。现在,我看到有 INavigatingAware,它只提供 OnNavigatingTo 方法(因此,导航尚未完成)。
我关于 INavigatingAware.OnNavigatingTo 的问题: - 我可以在我对 OnNavigatedFrom 调用不感兴趣的地方使用 INavigatingAware 吗?- 在 OnNavigatingTo 中加载数据在性能方面是否更好(在设置 BindingContext 之前;这样例如数据绑定不需要更新两次)?
很高兴分享您关于这两个接口的经验和最佳实践。
INavigatingAware.OnNavigatingTo 首次引入 Prism 以帮助开发人员执行类似于ViewWillAppear
.
为了帮助更好地形象化这一点,NavigationService 中的事件看起来像这样:
现在,所有这些都说,我们已经收到了大量关于 INavigatingAware(这个问题的本质)的反馈,结果是来自 Prism 社区的压倒性反馈 INavigatingAware 在 Prism 7.2 中已经过时了。这意味着它已从 INavigationAware 中删除,如果您直接实现它,则会引发编译时错误。对于从 INavigationAware 免费获得它的那些时候,它根本不会被调用。展望未来,我们引入了一系列接口,使这更容易和更自我记录的意图。
新接口和 API新的 IInitialize 接口是 INavigatingAware 的直接替代品。我们早就收到反馈,人们希望能够在初始化期间执行异步任务。这里的问题是,这会导致类似于 IConfirmNavigationAsync 的 Navigation 出现非常明显的延迟。如果您使用这些异步接口中的任何一个,您将需要确保在屏幕上包含某种忙碌/加载覆盖。
最后是有趣的... IAutoInitialize 只是一个标记界面。如果在您的 ViewModel 上设置,它将根据 NavigationParameters 中包含的内容自动尝试在您的 ViewModel 中设置任何属性。这是不区分大小写的,如果您的属性名称类似于Model
并且参数名称是monkey
.
归档时间: |
|
查看次数: |
1185 次 |
最近记录: |