Vue.js 页面刷新时丢失router.params
我遇到vue路由器的问题。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服务器上进行更改,以及进行一些其他配置更改。您需要使其正常工作 另外,在使用历史记
我在主页上找到了一个帖子列表。当我单击其中一个按钮时,它会重定向到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来检索剩余信息(例如,如果您的路线是
,则通过slug获取/article/: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