如何在不导航到该 url 的情况下推送历史记录条目并更改地址栏 url?

Posted

技术标签:

【中文标题】如何在不导航到该 url 的情况下推送历史记录条目并更改地址栏 url?【英文标题】:How to push a history entry and change address bar url without navigating to that url? 【发布时间】:2017-09-24 11:00:07 【问题描述】:

我试图模仿 Pinterest(以及许多其他流行网站)如何实现这一目标。

当用户单击模态框时,模态框会弹出,地址栏 url 发生变化,添加了新的历史条目,但页面不会重新加载。并且当用户关闭模式时,所有内容都会恢复到以前的状态并添加新的历史记录。

Vue-Router 提供了 router.push、router.replace 和 router.go,但它们并没有达到我想要的效果。 router.push 将导航到该 url,但我正在打开一个具有与之关联的 URL 的模式,而不是转到该 url。 router.replace 替换当前历史条目,而不是添加新条目。

执行此操作的标准方法是什么?

【问题讨论】:

【参考方案1】:

为此使用 Vue Router (google it)。请记住,这样的事情通常意味着付出很多努力却收获甚微。

使用 Vue Router,您可以设置您的应用程序,以便 page.com/book/Test 使用变量测试集将您定向到 page.com/book。

我建议使用 Webpack 和 Vue 插件将您的站点设置为单个文件项目,并使用该 Vue 路由器。然后你就可以得到你想要的功能了。

【讨论】:

以上是关于如何在不导航到该 url 的情况下推送历史记录条目并更改地址栏 url?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用导航控制器的情况下推送 UIViewController?

如何在不更改浏览器历史记录的情况下更改 url

如何清除nativescript-vue手动路由的导航历史记录?

我可以在不删除最近提交的情况下删除源/主合并历史记录吗?

从 Parse 中删除推送通知历史记录条目

react-router:如何在不导致导航/重新加载的情况下更新 url?