Error ⚠️
[Nuxt.js] useFetch와 $fetch
yundi
2024. 6. 24. 16:49
⚠️ 마운트된 후에 api를 연동할 경우
파일 업로더 페이지를 제작중에 file 업로드를 서버측 endPoint를 이용해 구현중에 심각한 에러는 아니지만 계속 노랭이 warn 에러가 떴다. plz use $fetch 라는데,,,, useFetch랑 무슨 차이이길래..!
아래는 기존에 작성한 common.js 파일이다.
export const request = (url, method, body) => {
const config = useRuntimeConfig();
return useFetch(`${url}`, {
method,
headers: {
Authorization: `Bearer ${sessionStorage.getItem("jwt")}`,
'X-API-key': config.app.api.key,
},
body
});
}
⭕ 해결방안
에러문구에서 계속 useFetch대신에 $fetch를 사용해달라해서 변경했더니
export const request = async (url, method, body) => {
const config = useRuntimeConfig();
return await $fetch(`${url}`, {
method,
headers: {
Authorization: `Bearer ${sessionStorage.getItem("jwt")}`,
'X-API-key': config.app.api.key,
},
body
});
}
감쪽같이 에러가 사라졌다 ..!
✨useFetch와 $fetch의 차이점
[제가 개발한 내용을 바탕으로 기록한 것이기 때문에 틀린내용이 있을 수 있습니다.]
내가 구현한 것은 upload 버튼을 눌렀을 때 file.js에서 common.js를 호출하여 endPoint를 가져와 file을 업로드하는 것이다.
useFetch같은 경우는 마운트되기 전 초기화 단계에서 데이터를 가져올 수 있도록 설계된 함수이다. common.js는 로그인한 사용자의 정보를 가져오기 위해서도 사용되는 파일이기 때문에 useFetch를 사용했는데, 파일 업로드를 할 때 useFetch를 다시 호출하면 충돌이 발생할 수 있어 저렇게 노랭이 에러가 나타나는 것이였다!
그래서 마운트된 이후에도 데이터를 가져오기 위해서는 $fetch를 사용하는 것이 더 적합하다 :)