vue.js - Vuex、vue-router 和处理页面重新加载 (F5)

标签 vue.js vue-router vuex

我正在使用 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/

相关文章:

javascript - Vuejs : Show confirmation dialog before route change

javascript - VueJS路由相同的组件不触发OWL Carousel

javascript - 通过初始化该属性,确保该属性是 react 性的,无论是在数据选项中,还是对于基于类的组件

vue.js - 如何在Vue Router中模拟 "scroll to anchor"on page load?

javascript - Vuex State 返回值不同

javascript - 2 方式绑定(bind)对象内的嵌套属性。 (VueJS + VueX)

vue.js - 为什么Vuex的action会返回一个promise<pending>?

javascript - 如何在 vuex 商店中使用 vue-resource ($http) 和 vue-router ($route)?

sockets - 组件中的开放式 socket 连接

vue.js - 如何在Vue中导入大数组