Vue.js 页面刷新时丢失router.params

Vue.js 页面刷新时丢失router.params,vue.js,vuejs2,vue-router,Vue.js,Vuejs2,Vue Router,我遇到vue路由器的问题。 我在主页上找到了一个帖子列表。当我单击其中一个按钮时,它会重定向到post页面,例如: 一切正常,我可以在getter中使用this.$route.params.id检索正确文章的数据。 我的问题:当我在文章页面上重新加载时,此.$route.params.id未定义,这会导致整个应用程序崩溃 如何在重新加载页面的情况下保存路由器.params?您使用的是什么后端?您需要在后端web服务器上进行更改,以及进行一些其他配置更改。您需要使其正常工作 另外,在使用历史记

我遇到vue路由器的问题。
我在主页上找到了一个帖子列表。当我单击其中一个按钮时,它会重定向到post页面,例如:


一切正常,我可以在getter中使用
this.$route.params.id
检索正确文章的数据。

我的问题:当我在文章页面上重新加载时,
此.$route.params.id
未定义,这会导致整个应用程序崩溃


如何在重新加载页面的情况下保存路由器.params?

您使用的是什么后端?您需要在后端web服务器上进行更改,以及进行一些其他配置更改。您需要使其正常工作

另外,在使用
历史记录模式时

编辑:您可以尝试,因为ID在URL中保持不变:从MIKE Axex中查找解决方案

我不知道是否还有其他人面临同样的问题,但我在刷新时获取路由参数时遇到了问题。我试图获取的路由参数是一个ID号,我使用该ID获取数据并填充页面。我发现(通过许多控制台日志)当我刷新时,数字变成了字符串,这就是页面无法工作的原因。我将其分类,但在使用之前将ID转换为数字:

编号($route.params.id)


我不确定您的路由定义是什么,问题可能是路由URL中只显示了一个参数(例如,
/article/:slug

当您调用路由时(通过单击
路由器链接
或调用
路由器.推送
),您将直接传递两个参数,它们将保留在内存中。这就是为什么两者都可以访问的原因。 但是当你重新加载页面时,Vue所能做的就是解析你的URL。 表示只分析一个参数,因为只存在一个参数

作为解决方案,您可以:

  • 在路由URL中使用两个参数(例如,
    /article/:id/:slug
  • 或者使用一个参数并调用API来检索剩余信息(例如,如果您的路线是
    /article/:slug
    ,则通过slug获取
    id

您也可以使用
查询
而不是参数

<router-link :to="{ name: 'article', query: {id: article.id, slug: article.slug } }"></router-link>

我有同样的问题通过路由器的网址

/article/:id/:slug

重新刷新后,您将不会丢失参数,因为当重新刷新时,vue将仅从url获取数据,并忘记您是否传递了参数。谢谢您的回复。我用的是拉威尔。Apache mod_rewrite已经设置好,404页面也已经设置好。我仍然有路由,URL还可以,但是组件没有加载,因为我在其中使用了
this.$route.params.id
,当我重新加载时它是未定义的。id是否会保留在URL中,还是在刷新时也会被删除?它会保留在URL中。这可能是一个很长的过程,但是你可以用可能的解决方案更新我的答案(不是标为已接受的那条,而是标在下面的那条)的确如此!非常感谢:)您的路线定义是什么?
/article/:id/:slug