> 웹 프론트엔드 > JS 튜토리얼 > Action Creator 내에서 Redux 상태에 액세스하는 것이 언제 정당합니까?

Action Creator 내에서 Redux 상태에 액세스하는 것이 언제 정당합니까?

Patricia Arquette
풀어 주다: 2024-10-21 18:47:29
원래의
696명이 탐색했습니다.

When Is Accessing Redux State Within Action Creators Justified?

Action Creators 내에서 Redux 상태에 액세스: 장단점

Action Creator 내에서 Redux 스토어 상태에 액세스하는 것은 여전히 ​​논쟁의 주제로 남아 있습니다.

접근 방식 1: Store 가져오기

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

이 접근 방식은 미들웨어를 피하지만 모듈에서 내보낸 싱글톤인 Store에 의존합니다. 그러나 서버 렌더링에는 요청마다 별도의 저장소가 필요하므로 이 접근 방식은 실용적이지 않습니다.

접근 방식 2: getState 사용

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

    dispatch(anotherAction(items));
  }
}
로그인 후 복사

이 접근 방식에서는 Redux Thunk를 사용해야 합니다. 미들웨어는 더 많은 유연성을 제공하여 클라이언트와 서버 모두에서 원활하게 작동합니다.

Redux 기여자의 의견

이 문제에 대한 의견은 Redux 기여자마다 다릅니다.

  • Dan Abramov는 변경 기록을 모호하게 하고 디버깅을 방해한다고 주장하면서 액션 생성자의 상태에 액세스하는 것을 권장합니다.
  • 반면 Mark Erikson은 의도된 목적을 언급하면서 썽크 액션 생성자 내에서 getState 사용을 권장합니다. .

결론

궁극적으로 상태 생성자에 액세스하는 결정은 애플리케이션의 특정 요구 사항에 따라 달라집니다. 최소한의 작업 페이로드가 필요한 경우 getState를 사용하지 않는 것이 좋습니다. 그러나 사용 사례에 따라 썽크 내에서 상태에 액세스하면 더 많은 유연성과 서버측 호환성이 제공됩니다.

위 내용은 Action Creator 내에서 Redux 상태에 액세스하는 것이 언제 정당합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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