如何在 nuxtjs 中访问查询字符串并将其传递给数据
How to access query string in nuxtjs and pass it to data
我想从 nuxtjs 页面中的 url 访问查询字符串。
这是包含查询字符串 -
的页面 url
http://localhost:3000/en-IN/atrsps/results/?pickupairport=Dubai&dropoffpoint=Bur%20Dubai,%20DU,%20United%20Arab%20Emirates&pickupdate=06%2F06%2F2021%2013%3A27
这是我的页面脚本部分
<script>
import axios from 'axios'
export default {
data() {
return {
cars: [],
loading: false,
disabled: true,
pickupairport: null,
dropoffpoint: null
}
},
asyncData({ route }) {
console.log(route.query)
},
computed: {
url() {
return `https://api.testdomain.com/V2/transfers/carlist?startpoint=${this.pickupairport}&endpoint=${this.dropoffpoint}&pickupdate=2021-07-01&pickuptime=14:55`
},
},
async created() {
await this.fetchData()
},
methods: {
async fetchData() {
this.loading = true //the loading begin
const res = await axios.get(this.url)
this.cars = res.data.response
this.loading = false
},
carsearch($state) {
setTimeout(() => {
axios
.get(this.url)
.then((res) => {
if (res.data.response.length > 1) {
res.data.response.forEach((item) => this.cars.push(item))
$state.loaded()
} else {
$state.complete()
}
})
.catch((err) => {
console.log(err)
})
}, 1000)
},
},
}
</script>
我想将 pickupairport 和 dropoffpoint 值从 url 传递到数据中的 pickupairport 和 dropoffpoint。
在控制台中,我可以看到这个数据
{
pickupairport: 'Dubai',
dropoffpoint: 'Bur Dubai, DU, United Arab Emirates',
pickupdate: '06/06/2021 13:27'
}
从模板中,您可以从 $route
对象访问它,例如 $route.query
,并且从 vue 实例中,您可以编写 this.$route.query
您还可以从 vue 开发工具中检查 $route
对象。看看下面的图片:
要将查询传递给数据对象,您只需编写:
data() {
return {
pickupairport: this.$route.query.pickupairport,
}
}
但您可能不需要将查询存储在数据对象中,因为您可以从模板或脚本中的任何地方访问 $route
对象
我想从 nuxtjs 页面中的 url 访问查询字符串。 这是包含查询字符串 -
的页面 urlhttp://localhost:3000/en-IN/atrsps/results/?pickupairport=Dubai&dropoffpoint=Bur%20Dubai,%20DU,%20United%20Arab%20Emirates&pickupdate=06%2F06%2F2021%2013%3A27
这是我的页面脚本部分
<script>
import axios from 'axios'
export default {
data() {
return {
cars: [],
loading: false,
disabled: true,
pickupairport: null,
dropoffpoint: null
}
},
asyncData({ route }) {
console.log(route.query)
},
computed: {
url() {
return `https://api.testdomain.com/V2/transfers/carlist?startpoint=${this.pickupairport}&endpoint=${this.dropoffpoint}&pickupdate=2021-07-01&pickuptime=14:55`
},
},
async created() {
await this.fetchData()
},
methods: {
async fetchData() {
this.loading = true //the loading begin
const res = await axios.get(this.url)
this.cars = res.data.response
this.loading = false
},
carsearch($state) {
setTimeout(() => {
axios
.get(this.url)
.then((res) => {
if (res.data.response.length > 1) {
res.data.response.forEach((item) => this.cars.push(item))
$state.loaded()
} else {
$state.complete()
}
})
.catch((err) => {
console.log(err)
})
}, 1000)
},
},
}
</script>
我想将 pickupairport 和 dropoffpoint 值从 url 传递到数据中的 pickupairport 和 dropoffpoint。
在控制台中,我可以看到这个数据
{
pickupairport: 'Dubai',
dropoffpoint: 'Bur Dubai, DU, United Arab Emirates',
pickupdate: '06/06/2021 13:27'
}
从模板中,您可以从 $route
对象访问它,例如 $route.query
,并且从 vue 实例中,您可以编写 this.$route.query
您还可以从 vue 开发工具中检查 $route
对象。看看下面的图片:
要将查询传递给数据对象,您只需编写:
data() {
return {
pickupairport: this.$route.query.pickupairport,
}
}
但您可能不需要将查询存储在数据对象中,因为您可以从模板或脚本中的任何地方访问 $route
对象