使用 NativeScript plus Angular 管理状态

Managing state with NativeScript plus Angular

我是一名 Swift、Objective-C 和 C# 程序员,我正在尝试使用 Angular 和 TypeScript 学习 NativeScript。我习惯于在我的应用程序中创建一个模型层来维护应用程序状态。即使我不将状态保存到持久存储中,即使我更改屏幕,状态仍然一致且可用。

在使用 NativeScript 和 Angular 之后,我想知道这是否可能不一样。我正在为我的模型设置值,当我导航(Angular 路由器)到一个新页面时,其中一些丢失了。我对此进行了研究,发现很少引用 NativeScript、状态和路由器导航,因此我扩展到具有 Javascript 的单页应用程序。在 Learning JavaScript Design PatternsO'Reilly Media 出版的位于 here 的在线书籍中,作者 Addy Osmani 指出:

Older texts on MVC may also contain reference to a notion of models managing application state.In JavaScript applications state has a different connotation, typically referring to the current "state" i.e view or sub-view (with specific data) on a users screen at a fixed point. State is a topic which is regularly discussed when looking at Single-page applications, where the concept of state needs to be simulated.

所以我推测在 NativeScript 中使用 Angular 路由器从一个页面导航到另一个页面类似于在同一个 Web 应用程序中从一个网页导航到另一个网页。在这种情况下,必须从持久存储中重新建立状态。这是一个正确的假设还是我仍然遗漏了什么?

谢谢,

如果您在组件的 @Component() 装饰器中提供服务,然后删除该组件,服务实例也会消失。

如果您改为使用 @App() 或其他不会被删除的父组件提供服务,则该服务将保持可用,并且如果将服务作为构造函数参数的组件将获得前一个稍后重新创建时再次注入实例。