> 웹 프론트엔드 > JS 튜토리얼 > Redux Action Creator가 상태에 어떻게 액세스해야 합니까: From Store 또는 Thunk?

Redux Action Creator가 상태에 어떻게 액세스해야 합니까: From Store 또는 Thunk?

Barbara Streisand
풀어 주다: 2024-10-21 18:48:29
원래의
529명이 탐색했습니다.

How Should Redux Action Creators Access State: From Store or Thunk?

액션 생성자 내에서 Redux 상태에 액세스

질문:

Redux 애플리케이션에서 어떻게 액션 생성자 내에서 글로벌 스토어 상태에 접근할 수 있나요? 다음 접근 방식이 적절합니까?

접근 방법 1:

<code class="javascript">import store from '../store';

export const SOME_ACTION = 'SOME_ACTION';
export function someAction() {
  return {
    type: SOME_ACTION,
    items: store.getState().otherReducer.items,
  }
}</code>
로그인 후 복사

접근 방법 2:

<code class="javascript">export const SOME_ACTION = 'SOME_ACTION';
export function someAction() {
  return (dispatch, getState) => {
    const {items} = getState().otherReducer;

    dispatch(anotherAction(items));
  }
}</code>
로그인 후 복사

답변:

액션 생성자의 상태 액세스 허용 여부는 Redux 커뮤니티 내에서 논쟁의 주제입니다.

접근 방법 1:

store.getState()를 통해 직접 상태에 액세스하는 것은 저장소가 전역 싱글톤이라는 점에 의존하기 때문에 권장되지 않습니다. 요청별로 별도의 저장소가 존재할 수 있는 서버에서는 이 접근 방식이 문제가 됩니다.

접근 방식 2:

이 접근 방식은 Redux Thunk 미들웨어를 사용하므로 선호됩니다. getState()를 통해 비동기 작업과 매장 상태 검색이 가능합니다. Thunk는 클라이언트와 서버 모두에서 원활하게 작동하며 상태 액세스가 특정 작업으로 격리되도록 합니다.

고려 사항:

  • Redux 제작자의 관점: 활동 중인 상태 액세스 작성자는 변경 내역을 모호하게 할 수 있으므로 일반적으로 권장되지 않습니다.
  • Redux 유지 관리자의 관점: 썽크에서 getState를 사용하는 것은 이러한 사용 사례를 위해 특별히 설계된 기능을 활용하므로 권장됩니다. .

궁극적으로 두 접근 방식 모두 원하는 결과를 얻을 수 있지만 접근 방식 2는 잠재적인 위험을 피하고 환경 전반에서 일관성을 유지하기 위해 권장되는 모범 사례입니다.

위 내용은 Redux Action Creator가 상태에 어떻게 액세스해야 합니까: From Store 또는 Thunk?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿