Ionic 2 - 存储用户凭证(本地存储与导航参数)

Ionic 2 - Store user credentials (local storage vs nav params)

我正在开发 Ionic 2 应用程序。当我登录时,我可以将用户凭据存储在 SQLStorageLocalStorage 或将其作为参数传输到 NavParam

示例:

onLogin(){
this.nav.setRoot(MainPageComponent,user);
}

let storage = new Storage(SqlStorage);
storage.set('name', 'Max');

与作为参数传递相比,存储的主要优势是什么?

Navparams用于页面间的数据传递 比如,你要打开一个特定项目的详细信息,你需要点击一个项目,参数将使用Navprams发送到itemDescription 页。 您更喜欢localstorage.setItem('userId', $userId),因为本地存储将解决您每次打开应用程序时不需要的登录。 如果您存储在本地存储中,那么在加载的每个应用程序中,我们都可以检查本地变量是否存在。

if(localstorage.getItem('userId')==null){
    this.signin();
}
else{
    this.appOpen();
}

这个可以帮到你!

What is the main advantage of storage over passing as parameter?

如果您只在一两页中使用该信息,您可以将其作为参数发送。但问题是您可能会在多个地方使用 name(可能在 设置 页面中,或者在 侧边菜单 等),因此将这些信息存储在某个地方是个好主意,这样您就可以在需要时取回它。

此外,如果您在一个页面中获取该信息,并希望在另一个页面中显示该信息,但这些页面并未直接连接到您的应用程序的工作流程中,则您需要通过其他页面传递该信息只是为了把它放在你想展示的地方。同样,存储该数据似乎是一种更好的方法。

请注意,如果您使用 SQLStorage 或 LocalStorage,您还应设置到期日期以强制用户在给定时间段后再次登录。