随着Nuxt3稳定版本的发布,我想使用组合式API更新答案。这是您在任何.vue文件中访问当前路由所有有趣部分的方法。
<script setup>
const route = useRoute()
</script>
<template>
<pre>{{ route }}</pre>
</template>
route
在访问 http://localhost:5678/about?fruit=watermelon
时会得到以下结果
{
"path": "/about",
"name": "about",
"params": {},
"query": {
"fruit": "watermelon"
},
"hash": "",
"fullPath": "/about?fruit=watermelon",
"matched": [
{
"path": "/about",
"name": "about",
"meta": {},
"props": {
"default": false
},
"children": [],
"instances": {},
"leaveGuards": {
"Set(0)": []
},
"updateGuards": {
"Set(0)": []
},
"enterCallbacks": {},
"components": {
"default": {
"__hmrId": "0a606064",
"__file": "/home/kissu/code/test/n3-default/pages/about.vue"
}
}
}
],
"meta": {}
}
如果您使用Vue开发者工具,您还可以通过控制台点击组件并找到实例(有助于快速检查对象)。它的细节比
Routes
标签多一些。
![enter image description here](https://istack.dev59.com/m7Zul.webp)
更多信息可在此处查看:https://v3.nuxtjs.org/api/composables/use-route#useroute
使用Options API,代码如下(控制台输出):
<script>
export default {
mounted () {
console.log('route object', this.$.appContext.app.$nuxt._route.query)
},
}
</script>
PS:也许有一种我还不知道的更短的方法。
PS2:我总是混淆查询参数
和"路由参数"
,因此this memento可以帮助了解它们之间的区别。