【问题标题】:Better way to share data between components Angular [closed]在Angular组件之间共享数据的更好方法[关闭]
【发布时间】:2020-04-14 07:28:45
【问题描述】:
我正在使用 Angular 8。当我想通过路由在组件之间共享变量时,我执行以下操作:
- 我通过
state添加数据喜欢:this.router.navigate(["thing/"],{state: {data: {..}}})
- 在组件中我使用
history.state.data来获取变量。
它有效,但我只是想知道是否有更优化的方式在组件之间共享数据,因为我从浏览器的历史记录中获取数据,如果我刷新,则不再有数据
【问题讨论】:
标签:
angular
typescript
routing
【解决方案1】:
路由时还有其他几种传递数据的方法。但是由于 WebApps 的性质,当您重新加载页面时,所有内存中的数据都会丢失(因为这基本上会重新启动您的应用程序)。所以如果你想让你的数据持久化,你已经把它放到了一个持久化存储中。现在也有多种选择,例如SessionStorage、LocalStorage、ÌndexedDB 甚至是 WebServer。哪一个是最适合您的案例的解决方案,很大程度上取决于您要保留哪种数据。
此外,还有一些选项,如查询参数和路径参数,它们会成为 URL 的一部分,因此它们基本上也会通过刷新保持不变。但这也意味着,如果用户要共享 URL,他也会共享数据。这是否是所需的行为取决于您的应用程序。