router.isReady().then(() => {
console.log(route.query.id) // 123
})
router.isReady里面执行可以获取到route.query参数,使用route.query的参数请求接口
此时这个接口还没有成功, 其他页面的接口就请求了
能不能让app.vue 里面的代码执行完成在执行其他页面接口?
等待请求执行,用await
如果您想让router.isReady()里面的代码执行完后再执行其他页面接口,可以将这些接口请求放在router.isReady()返回的Promise中执行。在Promise的then函数中,可以确保router.isReady()里的代码已经执行完成。
例如,您可以这样编写代码:
javascript
router.isReady().then(() => {
// 这里是获取路由参数并请求接口的代码
console.log(route.query.id) // 123
api.get('/example', { id: route.query.id }).then((response) => {
// 在这里执行其他页面的接口请求
console.log(response)
})
})
在这个例子中,获取路由参数并请求接口的代码放在router.isReady()的then函数中,这样可以确保在路由参数已经获取后再进行接口请求。接口请求也放在then函数中,这样可以确保在获取路由参数并完成接口请求后再进行其他页面的接口请求。
我给router-view添加了一个v-if="load",router.isReady()中的请求成功之后再渲染router-view