有个需求就是接口需要需要根据url中的参数,然后传递对应的值。
比如说,url中的参数有两种情况,一种是?a=xxx
,一种是?b=xxx
,所以需要确定url中到底是a
还是b
。
比较简单直接放代码:
// cmmmon.js
const getUrl = url => { // 这里确认参数的时候不能`a`和`b`同时存在
if(!url) return
if(url.includes('a')) {
return 'a'
} else if (url.includes('b')) {
return 'b'
} else {
return undefined
}
}
export {
getUrl
}
// index.vue
import { gerUrl } from 'common.js'
const name = getUrl(this.$route.fullPath) // fullPath 为**带参数的路径 **
// 具体可以使用vue 提供的 devtools工具查看 或者打印一下
const params = this.$route.query[name] // 这里就是根据获取url中对应的**参数的值**
// 这里需要使用`[]`的形式 不能写成`.`
上面确认参数的时候,a和b只是一个例子,不能确定简单的参数,因为有可能是这样的?b=abc
,这样会返回a
,就不准确了,当走到url.includes('a')
的时候,检查到?b
会继续往下走,直到找到abc
里面的a
。所以,只有确定语义化的参数才最准确,比如说name id mobile age
等。