我可以使用pushState(state: any, title: string, url: string, queryParams: string)
中的state参数做什么?
我可以存储数据吗?
有没有比“ https://angular.io/api/common/LocationStrategy#pushState”更“详细”的文档?
<3
答案 0 :(得分:1)
此pushState
函数最终将以一种或另一种方式映射到浏览器的history.pushState
函数。 MDN docs详细说明了如何使用此state
属性:
状态对象是一个JavaScript对象,它与
pushState()
创建的新历史记录条目相关联。每当用户导航到新状态时,都会触发popstate
事件,并且该事件的state
属性包含历史记录条目的状态对象的副本。状态对象可以是任何可以序列化的对象。由于Firefox将状态对象保存到用户的磁盘上,以便用户重新启动浏览器后可以将其还原,因此我们规定了640k个字符的大小限制关于状态对象的序列化表示形式。如果将序列化表示形式大于此状态的状态对象传递给
pushState()
,则该方法将引发异常。如果您需要更多空间,建议您使用sessionStorage
和/或localStorage
。
(强调我的/ OP)。
此处描述的popstate
事件可通过其Location
服务在Angular中使用。具体来说,您可以subscribe到Location
服务以便侦听PopStateEvent
,其中包括包含您期望的state
属性。