使用html5历史API和Vue

时间:2017-09-26 16:38:07

标签: javascript vuejs2 vue-router html5-history

我面临着一个愚蠢的问题。 在网络应用(我的堆栈是vue + vuex + vue-router)我完全无法将我的商店状态与用户正在查看的页面同步。

当用户触发后退或前进按钮时,它会触发相同的onpopstate事件,该事件绝对不会提供有关"方向"的信息。或页数。只有状态对象中的数组key似乎几乎不可行(在去新地方时保存它然后猜测用户在哪里进行)但我甚至不知道"门和#34;对应"键#34;。

所以我从那里开始考虑手动跟踪历史状态键并猜测用户的位置,但我猜它不会交叉兼容,而且还有很重的代码。

这是我的问题:我错过了html5 API中的一些关键元素,我该怎么做(并保持代码/逻辑极简主义)?

提前谢谢!

编辑:重命名标题并添加信息

EDIT2:vuex-router-sync是不合适的,因为它只在vuex端提供路由信息,并没有真正同步路由器状态和存储状态...到坏

P.S。:请不要使用c / p定义,仔细阅读,思考

1 个答案:

答案 0 :(得分:1)

onpopstateevent.state中提供与应用程序历史记录中相应位置相关的状态对象。

编写应用程序,以便提供此状态对象包含应用程序的整个状态,而不管时间。我建议你阅读State pattern,了解"陈述"意思是,例如

  

某人或某事物在特定时间进入的特殊情况。

我所做的暗示是,不应该知道应用程序所在历史记录中的相对位置,因为event.state应该是您的所有应用程序需求确定要渲染的内容。