728x90

📎  swr 잘못 사용하면 패킷들을 마구마구 백앤드로 보내서 셀프 DDOS공격을 하는셈이 된다. 이를 막기 위해서 설정을 있다.


내가 원할 때 swr 호출하기

 

revalidate 함수

 

               ex) const { data, error, revalidate } = useSWR('http://localhost:3095/api/users', fetcher);

axios
    .post(
      ...
    )
    .then(() => {
        revalidate();
    })
    .catch((error) => {
        ...
    });

 

성공 했을 revalidate 호출 해주면 fetcher 실행된다. 원래 정보가 들어있는 data revalidate 실행되면 false 된다.


swr 호출 주기를 늘리기

dedupingInterval
ex) dedupingInterval = 2000     캐시에 저장한 뒤로부터는 2초동안 에는 캐시에서 가져오고, 2초가 지나면 서버에 요청 한번씩 보내기


(컴포넌트가 실행되면 요청을 보내는데 아무리 많은 컴포넌트들이 실행되어도 2초동안에는 서버에는 딱 한번만 요청보내고 나머지들은 첫번째 요청이 성공한것에 대한 데이터를 그대로 가져오겠다는 뜻이다.)

 

focusThrottleInterval
ex) focusThrottleInterval = 5000     revalidate 함수를 5초에 한번씩 제한걸어주기

 

loadingTimeout
ex) loadingTimeout = 3000     요청을 보냈는데 3초가 넘으면 동작함

 

errorRetryInterval
ex) errorRetryInterval = 5000     서버에 요청을 보냈는데 에러가 나면 5초를 기다렸다가 재요청을 보내기

 

errorRetryCount   
최대 몇번까지 재요청이 가능한지 제한하기

'프레임워크 > React' 카테고리의 다른 글

[React] a 와 Link의 차이  (0) 2021.06.26
[React] children  (0) 2021.06.26
[React] SWR  (0) 2021.06.25
[React] CORS로 인한 proxy 설정 그리고 axios요청보내기  (0) 2021.06.25
[React] useCallback  (0) 2021.06.24

+ Recent posts