angular - 对于数据共享,我应该选择 Provider 还是 Local Storage

标签 angular typescript ionic3 inject

由于 LocalStorage 速度较慢,我想使用 Providers 进行数据共享。那么您能否告诉我,由于 Ionic 3 移动应用程序内部的这种方法,我是否必须面对任何问题?

注意:提供者是单例

像这样声明它:

project.ts

@Injectable()
export class ProjectProvider {

project: Project

constructor((){}

}

在任何其他页面上需要时使用:

home.ts

constructor(private projectProvider: ProjectProvider){} 

    ionViewDidEnter() {
       this.projectProvider.project = val;//after this I can use this anywhere
    }

我用上面的方法代替了这个:

 const project: Project = await this.storage.get('project');

在这里你可以看到我必须等到它检索。这是我的应用程序的一个问题,因为我的客户需要开发一个页面上几乎没有加载器图标的应用程序。那么我将不得不面对这种方法的任何问题吗?

最佳答案

如果用户将刷新页面(向下推页面将刷新),提供者将丢失数据,您可以将提供者用作单例,但它们不适合持久数据。使用提供程序在组件之间共享数据。

关于angular - 对于数据共享,我应该选择 Provider 还是 Local Storage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48763396/

相关文章:

angular - 如何从父路由的组件访问已激活的子路由的数据?

javascript - 从对象数组中删除特定属性

Angular 7, Protractor ,随机错误 "both angularJS testability and angular testability are undefined"

typescript - 在 typescript 中命名联合类型

node.js - ionic 2 undefined is not an object 错误

javascript - 根据 Typescript 中输入对象的属性,使用键从函数返回对象

Angular 2 : I want to have a different html structure for the login page and home page

javascript - ionic 框架 3 : Splitting a long article page into small pages

angular - 无法绑定(bind)到 inlineSVG

angular - 删除 ionic 3 应用程序中提供者的循环依赖