我正在使用 Nuxt.js,并且有一个在下面定义的动态页面
pages/post/_slug.vue
因此,当我访问页面 url 时,例如 http://localhost:3000/post/hello-world ,我如何才能在我的页面中读取这个 slug 参数值。
目前我正在使用 asyncData 获取它,如下所示:
asyncData ({ params }) {
// called every time before loading the component
return {
slug: params.slug
}
}
这工作正常,但我认为这不是最好的方法,应该有更好的方法使参数可用于页面。任何帮助表示赞赏!
原文由 asanas 发布,翻译遵循 CC BY-SA 4.0 许可协议
注意:此答案适用于 Vue2 和 Nuxt2。如果您正在寻找 nuxt3 或 vue3 的答案,请参阅其他答案。
在 .vue 文件中,获取 Vue 路由器 路由对象:
(注意 Vue 路由器 在
this.$router
对象下)$route
对象有一些有用的属性:您可以像这样使用
$route
对象:url路径参数位于
route.params
下,如您的情况route.params.slug
Vue mouted hook 只在客户端运行,当你想在服务器上获取参数时,你可以使用 asyncData 方法:
但是,请注意:
如果您不需要服务器上的参数信息,例如您不需要根据服务器端的参数获取数据,我认为挂载的钩子就足够了。