我正在尝试将Web应用程序的Spring Boot构建为后端,而将Angular的前端构建为Web应用程序,但是我面临着有关密封和获取所有组件数据的问题。
我在用户登录时使用sessionStorage.setItem() 但是,当我尝试使用sessionStorage.getItem()在我的家中获取用户数据时。 我必须刷新页面以填充数据的问题。
您能否在不刷新所有页面的情况下以最佳实践帮助我?
答案 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));