可以通过在代码中添加一个响应拦截器来解决axios返回数据多次的问题,具体代码如下:
import axios from 'axios'
axios.interceptors.response.use(
response => {
if (response.config.runOnce === true) { //添加一个标记,用来判断是否执行过
return response
}
response.config.runOnce = true //将标记赋值为true
return response
}
)
axios.get('/api/data')
.then(response => {
console.log(response.data) //数据只返回一次
})
在上面的代码中,我们通过axios的响应拦截器来判断是否已经执行过请求,如果已经执行过,则不再重复执行,从而避免axios返回数据多次的问题。