我正面臨着一個愚蠢的問題。 在網絡應用(我的堆棧是vue + vuex + vue-router)我完全無法將我的商店狀態與用戶正在查看的頁面同步。使用html5歷史API和Vue
當用戶觸發後退或前進按鈕時,它會觸發相同的onpopstate
事件,該事件絕對不會提供有關「方向」或頁數的信息。只有狀態對象中的數組key
似乎幾乎不可行(當去新的地方時,保存它,然後猜測用戶去哪裏poppopate),但我甚至不知道「鑰匙」對應的「門」在哪裏。
因此,我從那裏開始考慮手動跟蹤歷史狀態鍵並猜測用戶在哪裏,但我猜這不會是交叉兼容的,而且它是沉重的代碼。
這是我的問題:我錯過了html5 API中的一些關鍵元素,我該怎麼做(並保持代碼/邏輯極簡主義)?
預先感謝您!
編輯:改名爲標題,並添加信息
EDIT2:vuex路由器同步是不合適的,因爲它只提供vuex側路徑信息,並沒有真正的同步路由器狀態並保存狀態......壞
PS:請不要C/p的定義,請仔細閱讀,思考
我知道什麼是國家的意思,這是侮辱只是c/p的定義,但沒關係。 是的,顯然我想過使用state作爲一個狀態,但我想用最小的代碼/邏輯來處理vue,因爲我正在使用完整的Vue堆棧,並且我的應用程序的狀態由我的商店處理,如我的問題所述。 此外,你可能誤解了我的問題,我不需要知道用戶在哪裏,只是**他走多遠**和**在什麼方向**。 下一次花更多時間問自己「我真的理解了這個問題嗎」,「這個問題有什麼含義」,「我可以回答」。 謝謝。 – rmNyro
我沒有誤解這個問題,也沒有意圖侮辱。這似乎更像是你面臨的概念性問題,因爲你的問題是「你會怎麼做?」我想我會概述你應該如何看待「狀態」。當您調用'history.pushState()'或'history.replaceState()'時,您應該傳遞一個對象,該對象引用或完全替代存儲中的狀態,以便同步僅僅是查找,而不是某種根據「在什麼方向有多遠」計算。有狀態的應用程序不應該關心「時間」的概念。 –