LocationStrategy.pushState(状态:任意,标题:字符串,URL:字符串,queryParams:字符串)-状态是什么?

时间:2018-10-05 07:34:42

标签: angular browser-history

我可以使用pushState(state: any, title: string, url: string, queryParams: string)中的state参数做什么?

我可以存储数据吗?

有没有比“ https://angular.io/api/common/LocationStrategy#pushState”更“详细”的文档?

<3

1 个答案:

答案 0 :(得分:1)

pushState函数最终将以一种或另一种方式映射到浏览器的history.pushState函数。 MDN docs详细说明了如何使用此state属性:

  

状态对象是一个JavaScript对象,它与pushState()创建的新历史记录条目相关联。每当用户导航到新状态时,都会触发popstate事件,并且该事件的state属性包含历史记录条目的状态对象的副本。

     

状态对象可以是任何可以序列化的对象。由于Firefox将状态对象保存到用户的磁盘上,以便用户重新启动浏览器后可以将其还原,因此我们规定了640k个字符的大小限制关于状态对象的序列化表示形式。如果将序列化表示形式大于此状态的状态对象传递给pushState(),则该方法将引发异常。如果您需要更多空间,建议您使用sessionStorage和/或localStorage

(强调我的/ OP)。

此处描述的popstate事件可通过其Location服务在Angular中使用。具体来说,您可以subscribeLocation服务以便侦听PopStateEvent,其中包括包含您期望的state属性。