如何在 Vue.js 3 设置中获取查询参数?
How to get query params in Vue.js 3 setup?
我想制作一个搜索页面,在我点击它的按钮后将被重定向到另一个页面。而这个页面会是这样
http://localhost:8080/search?q=foo
我的路由器 index.js
看起来像这样
const routers = [
{
path: '/search',
name: 'Search',
component: SearchPage,
props: route => ( { query: route.query.q } )
}
]
问题是如何在 Vue.js 3 中获取目标页面 SearchPage
中的查询值?
这个 仍然让我感到困惑,因为没有使用组合 API 而不是在 vuejs 3
使用useRoute
您不需要将查询作为道具发送。最好使用 useRoute
,因为它更简单,并且可以从任何组件访问它,而不仅仅是页面视图组件。
import { useRoute } from 'vue-router';
export default {
setup() {
const route = useRoute();
console.log(route.query);
}
}
使用道具
首先更改路由器映射,使 query
映射到 query
对象:
props: route => ({ query: route.query })
在目标组件 SearchPage
中,创建一个 query
道具,它将接收来自路由器的 query
对象:
props: ['query']
并通过 props
参数在 setup
中访问它:
props: ['query'],
setup(props) {
console.log(props.query.q);
console.log(props.query.status);
}
您可以尝试另一种设置,通过 url 发送 propname
{ path: '/search/:propname', name: 'Search', component: SearchPage, props: true },
在搜索页面上,在 created() 上你可以得到它
this.$route.params.propname
我想制作一个搜索页面,在我点击它的按钮后将被重定向到另一个页面。而这个页面会是这样
http://localhost:8080/search?q=foo
我的路由器 index.js
看起来像这样
const routers = [
{
path: '/search',
name: 'Search',
component: SearchPage,
props: route => ( { query: route.query.q } )
}
]
问题是如何在 Vue.js 3 中获取目标页面 SearchPage
中的查询值?
这个
使用useRoute
您不需要将查询作为道具发送。最好使用 useRoute
,因为它更简单,并且可以从任何组件访问它,而不仅仅是页面视图组件。
import { useRoute } from 'vue-router';
export default {
setup() {
const route = useRoute();
console.log(route.query);
}
}
使用道具
首先更改路由器映射,使 query
映射到 query
对象:
props: route => ({ query: route.query })
在目标组件 SearchPage
中,创建一个 query
道具,它将接收来自路由器的 query
对象:
props: ['query']
并通过 props
参数在 setup
中访问它:
props: ['query'],
setup(props) {
console.log(props.query.q);
console.log(props.query.status);
}
您可以尝试另一种设置,通过 url 发送 propname
{ path: '/search/:propname', name: 'Search', component: SearchPage, props: true },
在搜索页面上,在 created() 上你可以得到它
this.$route.params.propname