Javascript 按下Vue.js并单击“后退”按钮

Javascript 按下Vue.js并单击“后退”按钮,javascript,vue.js,Javascript,Vue.js,我在Vue.js模板中有一个项目列表。用户从“/list”开始,这是一个项目列表。单击项目时,我使用$router.push将用户发送到路由。我向用户发送的路由是: $router.push('/items/[theItemId]/Property1'); 我这样做是为了用户不必在“/items/[ittemid]”上。这非常有效,但是当用户点击后退按钮时,他们会被带到路线: /items/[theItemId] 相反,我希望用户被引导回主列表 '/list' 这可能吗 谢谢我想您正在使用

我在Vue.js模板中有一个项目列表。用户从“/list”开始,这是一个项目列表。单击项目时,我使用$router.push将用户发送到路由。我向用户发送的路由是:

$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]
,除非你去了那里,单击了另一个链接,然后单击了后退按钮。我在下面输入了一个答案(太长了,无法发表评论),假设有几件事。如果我的假设不正确(关于挂载钩子中的编程导航),请提供更多信息,以便我们了解发生了什么。如果我在最初的问题中不清楚,请道歉。马尼的答案正是我所需要的。