我正在使用vue-router和vuex切換我正在構建的單頁應用程序。但這是我的第一個SPA,所以我正在陷入一些新手問題。我有東西工作,我想,我的產品列表和編輯模式,通過/product/list
和/product/edit
成功路由,然後我發現(意料之中)事情打破了編輯模式,當我重新加載使用F5(或Ctrl鍵的頁面 - F5)。編輯模式取決於在列表模式下設置的狀態,並且在沒有發生重新加載之後。Vuex,vue-router和處理頁面重新加載(F5)
所以我的問題是一個一般的建築。做這種事情的最好方法是什麼?我應該嘗試將Vuex狀態持久化到本地還是會話存儲,以便它能夠在重新加載後生存下來?還是應該確保使用路由URL中的信息(我目前沒有這樣做)能夠重新生成狀態?也就是說,我不應該將網址設置爲/product/list
,而應該有/product/list?search=whatever&order=field
,以便重新加載時可以再次執行搜索和排序。同樣,而不是/product/edit
,我會有/product/edit?id=12345
,所以如果頁面被刷新,特定的產品可以再次加載。
我的偏好是將狀態持久保存到localStorage(我不必與沒有存儲的瀏覽器相抗衡)。但是我想知道我是否以錯誤的方式接觸SPA設計,我仍然應該以REST術語思考它,即使它全部在一個頁面內發生。
我應該補充說,它不需要很長時間來解決我的具體問題,使用window.beforeunload將商店的狀態保存到sessionStorage,並在創建商店時測試此SessionStorage的現有值。不過,我仍然懷疑我是否爲未來創造了問題。 –