在 Vue3 中常见异步请求方式:
- 使用 axios 配合 async/await 发起请求
- 请求逻辑建议封装为 composable,如 useFetch()
示例:
ts
复制编辑
export function useUserData() {
const user = ref(null)
const loading = ref(false)
const fetchUser = async () => {
loading.value = true
const res = await axios.get('/api/user')
user.value = res.data
loading.value = false
}
return { user, loading, fetchUser }
}
建议:
- 所有请求加 loading 状态
- 所有请求组件外封装(逻辑分离)
- 异常处理建议统一封装,避免组件内乱写 try...catch
https://www.sohu.com/a/910454515_122459568
https://www.sohu.com/a/910452653_122459568
https://www.sohu.com/a/910451737_122459568
https://www.sohu.com/a/910448988_122459568
https://www.sohu.com/a/910448961_122459568
https://www.sohu.com/a/910458110_122459559
https://www.sohu.com/a/910457842_122459559
https://www.sohu.com/a/910457817_122459559
https://www.sohu.com/a/910457046_122459559
https://www.sohu.com/a/910458790_122459428
https://www.sohu.com/a/910459091_122459428
https://www.sohu.com/a/910459366_122459428
https://www.sohu.com/a/910459848_122459428
https://www.sohu.com/a/910460703_122459428
https://www.163.com/dy/article/K3J53OBJ0556EC6N.html
https://www.163.com/dy/article/K3J57DDV0556EC6N.html
https://blog.csdn.net/gregg4265117/article/details/149105176
https://blog.csdn.net/gregg4265117/article/details/149105010
https://blog.csdn.net/gregg4265117/article/details/149105232
https://blog.csdn.net/gregg4265117/article/details/149105255
https://blog.csdn.net/gregg4265117/article/details/149105276