기타

[기타] fetch 비동기 통신후, 페이지가 새로고침 되는 현상..

모찌바라기 2022. 3. 15. 21:25
728x90
반응형

 

오늘 뭐 좀 하고 있는데, fetch함수를 통해 비동기 통신을 하고, 1번째 then에서 json()을 통해 Promise객체를

한번 정제해주고 2번째 then에서 좀 쓰려고 하는데, 도통 2번째 then으로 안넘어가는 것이었다.

 

그래서 문법적으로 잘못된 게 없는데 뭐가 문제지.. 하고 디버깅 하나하나 하고 있는데

네트워크 쪽에 의심스러워 보이는게 보였다.

 

 

1번째 then에서는 API통신이 잘된다.

 

근데 2번째 then으로 넘어가니, 페이지가 새로고침 되듯이 전 컴포넌트가 새로 불러와지는 게 아닌가??

 

 

기존 API호출 되는 것도 사라지고, 컴포넌트와 인스턴스를 새로고침 하는 것이었다. 이러니

통신이 끊기지... 그럼 왜 검색을 하던 중 새로고침 된걸까? 문제는 아래 코드였다.

 

 <form class="d-flex">
    <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search" @keyup.enter="searchYoutube()" v-model="keyWord">
    <button class="btn btn-outline-success" @click="searchYoutube()">Search</button>
</form>

 

부트스트랩에서 가져온 녀석인데 <form>태그 안에 type이 search로 지정되어 있다..

그래서 아마 뷰-디렉티브 함수 호출후, 서버통신이 되던 도중 저 form이 실행되어 페이지가 새로고침 된 게 아닐까..

라는 생각을 하여 아래와 같이 수정하였다.

 

 <div class="d-flex">
    <input class="form-control me-2" type="text" placeholder="Search" aria-label="Search" @keyup.enter="searchYoutube()" v-model="keyWord">
    <button class="btn btn-outline-success" @click="searchYoutube()">Search</button>
</div>

 

이런 기본적인 실수로 2시간 날리니 현타가 온다...

728x90
반응형