【问题标题】:router-link replace with vue-router?路由器链接替换为vue路由器?
【发布时间】:2018-02-10 06:47:32
【问题描述】:

使用带有 vue-router 的 router-link 标签,“设置替换属性将在单击时调用 router.replace() 而不是 router.push(),因此导航不会留下历史记录”,根据文档.但这似乎并没有发生在我身上,所以我想我一定是误会了什么。我的 SPA 中有一个导航菜单,每个菜单项中的路由器链接都有一个替换道具。然而,当我依次单击每个菜单项时,它显然确实会添加到历史记录中,因为后退按钮将我带回到上一个项目,并且我实际上可以在 Firefox 历史记录中看到正在添加的 URL 列表。我做错了什么?

【问题讨论】:

  • 该行为的演示,至少是 HTML 模板,对您有所帮助。
  • 好吧,其中一个路由器链接的示例如下:<router-link :to="{ name: 'edit-sale', params: { action: 'add' }}" replace>New Sale</router-link>。使用这条路线:{name: 'edit-sale', path: '/sale/:action(add|modify)/:id?', component: SaleManager}。但是......我现在发现后退按钮的行为符合预期,所以也许我刚刚遇到了一些缓存问题?
  • 说得太早了!使用 Chrome,我可以继续单击后退按钮并浏览我的导航历史记录 - '/product/list'、'/sale/add' 等等,即使所有这些链接都被赋予了 'replace' 属性。我不认为这是一个错误,更多的是我的误解。

标签: vue.js vue-router


【解决方案1】:

在“history”组件中使用<router-link :to='{path:'/test'}' replace> Go <router-link>,点击“Go”后,url为“..../test”,“history”组件的url还在url的历史列表中。但是如果你点击浏览器的后退按钮,'.../history'就会消失。[Vue.2]

【讨论】:

  • 这确实是我期望使用后退按钮发生的事情,但没有发生。由于我不知道的原因,它现在可以正常工作。
  • 稍后:事实上,似乎并没有始终如一地工作。
  • 这是一个大系统的一部分,不可能在这里展示。我会尝试隔离其中的一部分,看看我是否可以证明这个问题。
  • 有一个错字:relace -> replace
猜你喜欢
  • 2019-05-20
  • 2018-04-30
  • 2021-07-26
  • 2021-11-22
  • 2023-04-03
  • 1970-01-01
  • 2021-09-20
  • 2021-10-24
  • 2021-04-10
相关资源
最近更新 更多