>  기사  >  웹 프론트엔드  >  Action Creators 내에서 Redux 상태에 액세스하는 방법은 무엇입니까?

Action Creators 내에서 Redux 상태에 액세스하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-21 18:47:02722검색

How to Access Redux State within Action Creators?

Action Creator에서 Redux 상태에 액세스

Redux 액션은 일반적으로 "얇게" 설계되었으며 애플리케이션을 업데이트하는 데 필요한 정보만 포함합니다. 상태. 그러나 일부 시나리오에서는 작업 생성기 내의 전역 저장소 상태에 액세스해야 할 수도 있습니다. 이 문서에서는 이를 위한 두 가지 접근 방식을 살펴보고 사용법에 대한 지침을 제공합니다.

싱글톤 저장소 사용

한 가지 접근 방식은 싱글톤 저장소를 가져오고 해당 상태에 직접 액세스하는 것입니다.

import store from '../store';

export const SOME_ACTION = 'SOME_ACTION';
export function someAction() {
  return {
    type: SOME_ACTION,
    items: store.getState().otherReducer.items,
  }
}

이 접근 방식은 구현이 간단하지만 싱글톤이고 모듈 가져오기로 노출되는 저장소에 크게 의존합니다. 이 디자인은 일반적으로 요청당 별도의 저장소 인스턴스가 필요한 서버 렌더링 구현을 방해하므로 권장되지 않습니다.

Redux Thunk 미들웨어 사용

권장되는 접근 방식은 다음과 같습니다. Redux Thunk 미들웨어를 활용합니다. Thunk 미들웨어를 사용하면 비동기 함수를 작업으로 전달하여 getState() 메서드에 대한 액세스를 제공할 수 있습니다.

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

    dispatch(anotherAction(items));
  }
}

이 접근 방식을 사용하려면 Redux Thunk를 사용해야 하지만 두 클라이언트 모두에서 저장소 상태에 유연하게 액세스할 수 있습니다. 및 서버 환경.

고려사항

액션 생성자에서 getState() 사용에 대해 Redux 커뮤니티에서 논의가 있었습니다. 일부 개발자는 이를 반대하지만 다른 개발자는 조건부 디스패치나 캐시된 데이터 액세스와 같은 특정 시나리오에서 허용된다고 생각합니다.

궁극적으로 최선의 접근 방식은 특정 애플리케이션 요구 사항에 따라 다릅니다. 작업 생성자 내에서 저장소 상태에 대한 액세스가 필요한 경우 싱글톤 저장소 또는 썽크 미들웨어 옵션을 고려할 수 있습니다. 그러나 명확성과 추적성을 유지하려면 일반적으로 작업을 "얇게" 유지해야 한다는 점에 유의하는 것이 중요합니다.

위 내용은 Action Creators 내에서 Redux 상태에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.