inflearn logo
강의

Course

Instructor

Next YTMusic Clone Coding from the Basics (with next.js 14, UI Master)

YTMusicClone - Home

zustand 상태관리

Resolved

333

SJ

155 asked

0

안녕하세요 !

강의따라서 zustand 라는 상태관리 지금 사용해보고있는데요

강사님은 현업에서 백엔드와 같이 작업하시면서 zustand 사용하고 계시나요 ?? 만약 사용하고 계신다면 제한사항이나 불편한것들이 있었나요 ??

react 인터랙티브-웹 클론코딩 next.js tailwind-css zustand

Answer 1

0

dodocoding

현업에서는 Redux를 쓰고 있어요. ㅠㅜ

신규 프로젝트 한다면 Zustand를 도입할것 같네요.

 

특히 비동기 처리 부분의 경우 Redux는 thunk, saga를 이용하는데요.

zustand는 JS의 비동기처리 방식과 거의 유사하게 가능하죠.

 

아래는 zustand에서 API 처리하는 예시인데, 이런 경우도 고려하면서 사용하면 문제없겠네요.!

import create from 'zustand';

const useStore = create((set) => ({
  data: null,
  loading: false,
  error: null,
  controller: null, // AbortController를 저장할 상태
  fetchData: async () => {
    set((state) => {
      // 기존 요청 취소
      if (state.controller) {
        state.controller.abort();
      }
      // 새로운 AbortController 생성
      const controller = new AbortController();
      return { loading: true, error: null, controller };
    });

    try {
      const response = await fetch('https://api.example.com/data', {
        signal: get().controller.signal,
      });
      if (!response.ok) {
        throw new Error('Network response was not ok');
      }
      const data = await response.json();
      set({ data, loading: false, controller: null });
    } catch (error) {
      if (error.name === 'AbortError') {
        console.log('Fetch aborted');
      } else {
        set({ error, loading: false, controller: null });
      }
    }
  },
  resetData: () => set((state) => {
    // 기존 요청 취소
    if (state.controller) {
      state.controller.abort();
    }
    return { data: null, loading: false, error: null, controller: null };
  }),
}));

export default useStore;

0

SJ

감사합니다 !

4.6강 초기 로딩 속도 케이스 비교

0

85

2

Sidebar & Header 컴포넌트 등 레이아웃 설정 방식

0

89

3

문의드립니다.

0

145

3

Vercel signup이 안되요,, 계속 제 깃허브 계정은 추가 인증이 필요하다며 registration@vercel.com에 문의를 하라고 하네요,,, 이럴땐 진행을 어찌해야할까요,,,

1

101

2

에러, 로딩 내용 페이지를 모든 페이지에 다 만드는 이유가 따로 있나요?

2

158

3

3.2, 3.3 화면에 아무것도 나오지 않고 있습니다!

0

210

3

코드가 왜 그런지 모르겠는데, 이럴땐 어떻게 공부해야하나요?

1

221

3

강의외 복잡한 ui 입력폼 관련 질문 있습니다

1

218

2

npx랑 yarn이랑 같이 써도 되나요?

0

437

2

article / section 태그에 관해

0

179

1

카테고리 변경 시 이미지 로딩

1

191

2

next zustand 사용 시 문의

0

474

2

component 파일에서는 tsx파일이 아니라 jsx 파일을 쓰는 이유를 알 수 있을까요?

1

175

2

versel 을 통한 배포를 하는 것과 (홈서버 + 클라우드 플래어 프록시)를 하는 것을 비교해주실 수 있나요?

1

175

1

선생님 죄송한대

1

152

1

깃 push가 안되서 ssh를 한참해메고 있습니다. ㅠㅠ

1

143

1

Chapter 7 영상 화면이 안보입니다.

0

273

2

오류발생 문제입니다.

1

229

1

질문있습니다.

1

181

1

11.5 Channel 노래,앨범 section 강의중

0

153

1

소스 수정 후 자동 컴파일 문의드립니다.

1

281

2

정적배포

0

196

1

state에서 buffer랑 time이 안 나옵니다

0

199

2

components 들은 jsx 로 만드신 이유

0

311

3