我正在使用 vue-router 和 vuex 将我正在构建的应用程序切换为单页应用程序。但这是我的第一个 SPA,所以我遇到了一些新手问题。我的产品列表和编辑模式都按我想要的方式运行,通过 /product/list
和 /product/edit
成功路由,然后我发现(毫不奇怪) 当我使用 F5(或 Ctrl-F5)重新加载页面时,编辑模式出现问题。编辑模式取决于在列表模式中设置的状态,并且在重新加载后不会发生这种情况。
所以我的问题是一般性的架构问题。做这种事情的最好方法是什么?我应该尝试将 Vuex 状态保存到本地或 session 存储,以便它可以在重新加载后继续存在吗?或者我应该确保能够使用路由 URL 中的信息重新生成状态(我目前没有这样做)?也就是说,我应该使用 /product/list?search=whatever&order=field
,而不是将 URL 作为 /product/list
,以便重新加载搜索和排序可以再次执行。同样,我使用的不是 /product/edit
,而是 /product/edit?id=12345
,这样如果刷新页面,就可以加载特定的产品再次。
我的偏好是将状态持久化到 localStorage(我不必与没有存储的浏览器竞争)。但我想知道我是否以错误的方式进行 SPA 设计,我仍然应该从 REST 的角度来考虑它,即使它全部发生在一个页面中。
最佳答案
对我来说,最有效的是:
const router = new Router ({
// mode: "history",
history: true,
hashbang: false,
root: "/your app directory",
base: "",
...
...
关于vue.js - Vuex、vue-router 和处理页面重新加载 (F5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41856142/