在angular 6中使用sessionStorage的最佳方法是什么

时间:2018-08-01 19:44:26

标签: angular6 sessionstorage

我正在尝试将Web应用程序的Spring Boot构建为后端,而将Angular的前端构建为Web应用程序,但是我面临着有关密封和获取所有组件数据的问题。

我在用户登录时使用sessionStorage.setItem() 但是,当我尝试使用sessionStorage.getItem()在我的家中获取用户数据时。 我必须刷新页面以填充数据的问题。

您能否在不刷新所有页面的情况下以最佳实践帮助我?

2 个答案:

答案 0 :(得分:3)

我不知道您在“不刷新所有页面就填充数据”这一点上指出了什么。

但是,当您将数据存储在sessionStorage或localStorage中时,只要通过“ router-outlet”导航到组件,就可以获取数据。

您可以使用ngOnInit()从sessionStorage中获取数据,因为每当初始化组件和刷新特定页面时都会调用该数据。

您可以使用以下代码获取数据,假设您的密钥是“数据”。

    if (sessionStorage.getItem('data')) {
      console.log(JSON.parse(sessionStorage.getItem('data'))); //converts to json object
    } else {
      console.log('key dose not exists');
    }

答案 1 :(得分:0)

我建议您使用与会话存储相同的localStorage,但它的持久性甚至超过关闭并重新打开浏览器的时间。

// Set item:
let myObj = { name: 'Skip', breed: 'Labrador' };

localStorage.setItem(key, JSON.stringify(myObj));

// Getitem:

let item = JSON.parse(localStorage.getItem(key));