ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SWR
    프론트엔드/React 2020. 8. 17. 00:00
    반응형
    SMALL

    # What?

    spa인거 좋으나 매번 페이지 접속때마다 api 요청을 새로 해주니, 오히려 mpa보다 사용감이 떨어져보일 때가 있음.

    mpa처럼 캐싱처리 알아서 잘 해주게 도와주는 라이브러리가 swr임.

     

    # How?

    1) SWRConfig로 swr를 사용할 페이지 컴포넌트들을 감싸주기

    <SWRConfig value={{
      fetcher: (url) => axios(url).then(response => response.data) 
      // 이렇게 해두면 useSWR에 url만 써줘도 response.data값이 return됨.(전역 fetcher 설정)
    }}>
       <Switch>
            <Redirect exact path="/" to={"/groups"}/>
            <AuthRoute exact path="/test" component={Test}/>
       </Switch>
    </SWRConfig>

    2) useSWR로 초기 데이터 가져오기(useEffect안에 넣으면 안됨)

    let {data: items, mutate: mutateItems} = useSWR(`/api/stores?page=${params.page}&group_id=${params.group_id}`);
    // state, setState랑 비슷

    * useSWR([URL, 넘겨주는 데이터 자리]); // 넘겨주는 데이터 자리에 state만 넣어야돼 안그럼 오류나

     

    3) mutate로 crud 시 데이터 변경하기

        const onMenuCreated = (response) => {
            mutateStore({...store, menus: [...store.menus, response.data]}, false); 
            // false 옵션을 주면 revalidate 할 필요 없이 바로 데이터 수정
        };
    LIST

    '프론트엔드 > React' 카테고리의 다른 글

    [작성중] 6-1. Custom Form Input 컴포넌트 만들기  (0) 2024.03.03
    PWA  (0) 2020.08.25
    9. Auth  (0) 2020.02.05
    08. Redux(리덕스)  (0) 2020.02.04
    07. 리액트 라우터(React Router)  (0) 2020.02.04

    댓글

Designed by Tistory.