Javascript 按下Vue.js并单击“后退”按钮
我在Vue.js模板中有一个项目列表。用户从“/list”开始,这是一个项目列表。单击项目时,我使用$router.push将用户发送到路由。我向用户发送的路由是:Javascript 按下Vue.js并单击“后退”按钮,javascript,vue.js,Javascript,Vue.js,我在Vue.js模板中有一个项目列表。用户从“/list”开始,这是一个项目列表。单击项目时,我使用$router.push将用户发送到路由。我向用户发送的路由是: $router.push('/items/[theItemId]/Property1'); 我这样做是为了用户不必在“/items/[ittemid]”上。这非常有效,但是当用户点击后退按钮时,他们会被带到路线: /items/[theItemId] 相反,我希望用户被引导回主列表 '/list' 这可能吗 谢谢我想您正在使用
$router.push('/items/[theItemId]/Property1');
我这样做是为了用户不必在“/items/[ittemid]”上。这非常有效,但是当用户点击后退按钮时,他们会被带到路线:
/items/[theItemId]
相反,我希望用户被引导回主列表
'/list'
这可能吗
谢谢我想您正在使用
$router。请将推到为/items/:itemID
创建的或挂载的路由组件挂钩中
使用$router.push
时,将在历史堆栈中创建一个新项。因此,您的历史堆栈现在如下所示:
/list
>/items/:itemID
>/items/:itemID/Property1
由于“后退”按钮通常会将您带到历史堆栈中的上一个条目,因此它会按预期将您带到/items/:itemID
为了避免这种情况,您可以使用$router.replace
而不是$router.push,如下所述:
引自上页:
路由器。更换(位置)
它的行为类似于路由器。推送
,唯一的区别是它导航时不推送一个新的历史记录条目,正如它的名字所示——它取代了当前条目
如果您使用$router.replace
,您的历史堆栈现在将是:
/list
>/items/:itemID/Property1
现在,如果您点击后退按钮,您将进入/list
我认为您正在使用$router。在为/items/:itemID
创建的或挂载的路由组件挂钩中按下
使用$router.push
时,将在历史堆栈中创建一个新项。因此,您的历史堆栈现在如下所示:
/list
>/items/:itemID
>/items/:itemID/Property1
由于“后退”按钮通常会将您带到历史堆栈中的上一个条目,因此它会按预期将您带到/items/:itemID
为了避免这种情况,您可以使用$router.replace
而不是$router.push,如下所述:
引自上页:
路由器。更换(位置)
它的行为类似于路由器。推送
,唯一的区别是它导航时不推送一个新的历史记录条目,正如它的名字所示——它取代了当前条目
如果您使用$router.replace
,您的历史堆栈现在将是:
/list
>/items/:itemID/Property1
现在,如果您点击后退按钮,您将进入/list
故事的内容肯定不止这些。没有理由它会使用后退按钮进入/items/[ittemid]
,除非你去了那里,单击了另一个链接,然后单击了后退按钮。我在下面输入了一个答案(太长了,无法发表评论),假设有几件事。如果我的假设不正确(关于挂载钩子中的编程导航),请提供更多信息,以便我们了解发生了什么。如果我在最初的问题中不清楚,请道歉。马尼的答案正是我所需要的。故事中肯定有比这更多的东西。没有理由它会使用后退按钮进入/items/[ittemid]
,除非你去了那里,单击了另一个链接,然后单击了后退按钮。我在下面输入了一个答案(太长了,无法发表评论),假设有几件事。如果我的假设不正确(关于挂载钩子中的编程导航),请提供更多信息,以便我们了解发生了什么。如果我在最初的问题中不清楚,请道歉。马尼的答案正是我所需要的。