Redux 조치는 응용 프로그램의 상태를 변경하려는 의도를 나타내는 일반 JavaScript 객체입니다. 그들은 Redux 매장에서 변화를 유발하는 유일한 방법으로 사용됩니다. 동작에는 일반적으로 다른 관련 데이터 (종종 payload
라고 함)와 함께 수행되는 동작 유형을 나타내는 type
필드가 포함됩니다.
작업을 발송하려면 Redux Store에서 제공하는 dispatch
기능을 사용합니다. 프로세스는 다음 단계로 나눌 수 있습니다.
type
과 필요한 payload
로 작업 객체를 만듭니다.dispatch
함수를 호출합니다. 이렇게하면 액션을 Redux 상점에 보낸 다음 Redux를 통해 통과하여 상태를 업데이트합니다.기본 예는 다음과 같습니다.
<code class="javascript">// Action Creator function incrementCounter() { return { type: 'INCREMENT_COUNTER', payload: 1 }; } // Dispatching the action store.dispatch(incrementCounter());</code>
이 예에서는 incrementCounter
액션 객체를 반환하는 액션 제작자입니다. 그런 다음 store.dispatch
사용하여 작업이 상점에 파견됩니다.
Redux 동작의 구조는 간단하지만 이해하는 것이 중요합니다. 일반적인 Redux Action 객체에는 다음과 같은 구조가 있습니다.
다음은 일반적인 행동 구조의 예입니다.
<code class="javascript">{ type: 'ADD_TODO', payload: { id: 1, text: 'Learn Redux' }, error: false, meta: { timestamp: new Date().getTime() } }</code>
Redux Thunk는 액션 객체 대신 기능을 반환하는 액션 제작자를 작성할 수있는 미들웨어입니다. 이러한 기능은 비동기 API 호출과 같은 부작용을 가질 수 있으며 시간이 지남에 따라 여러 동작을 발산 할 수 있습니다.
다음은 Redux Thunk를 사용하여 비동기 동작을 발송하는 방법입니다.
Redux Thunk 설치 : 먼저 Redux Thunk를 설치해야합니다.
<code class="bash">npm install redux-thunk</code>
Redux Thunk 설정 : 상점의 미들웨어에 Redux Thunk를 포함시킵니다.
<code class="javascript">import { createStore, applyMiddleware } from 'redux'; import thunk from 'redux-thunk'; import rootReducer from './reducers'; const store = createStore(rootReducer, applyMiddleware(thunk));</code>
비동기 액션 제작자 만들기 : 함수를 반환하는 액션 제작자를 작성하십시오. 이 기능은 작업을 발송하고 setTimeout
, fetch
또는 기타 비동기 작업을 사용할 수 있습니다.
<code class="javascript">function fetchTodos() { return async (dispatch) => { dispatch({ type: 'FETCH_TODOS_REQUEST' }); try { const response = await fetch('https://example.com/api/todos'); const data = await response.json(); dispatch({ type: 'FETCH_TODOS_SUCCESS', payload: data }); } catch (error) { dispatch({ type: 'FETCH_TODOS_FAILURE', error: error.message }); } }; }</code>
비동기 동작을 파견 : 이제 정기적 인 동작처럼 비동기 동작을 파견 할 수 있습니다.
<code class="javascript">store.dispatch(fetchTodos());</code>
이 예에서 fetchTodos
는 비동기 작업의 다른 단계에서 다른 동작을 파견하는 비동기 액션 제작자입니다.
Redux의 작업 유형을 효과적으로 관리하는 것은 확장 가능하고 유지 관리 가능한 응용 프로그램을 유지하는 데 중요합니다. 모범 사례는 다음과 같습니다.
동작 유형에 상수를 사용하십시오 : 액션 유형을 별도의 파일에서 상수로 정의하십시오. 이렇게하면 오타를 방지하고 응용 프로그램에서 작업 유형을보다 쉽게 유지할 수 있습니다.
<code class="javascript">// actionTypes.js export const INCREMENT_COUNTER = 'INCREMENT_COUNTER'; export const DECREMENT_COUNTER = 'DECREMENT_COUNTER';</code>
도메인별로 동작 유형을 구성하십시오 : 그들이 속한 도메인 별 그룹 조치 유형. 이것은 많은 액션 유형을 관리하는 데 도움이됩니다.
<code class="javascript">// counterActionTypes.js export const INCREMENT_COUNTER = 'INCREMENT_COUNTER'; export const DECREMENT_COUNTER = 'DECREMENT_COUNTER'; // userActionTypes.js export const LOGIN_USER = 'LOGIN_USER'; export const LOGOUT_USER = 'LOGOUT_USER';</code>
액션 제작자 사용 : 액션 제작자를 사용하여 액션을 생성합니다. 이렇게하면 오류의 가능성이 줄어들고 코드를보다 재사용 할 수 있습니다.
<code class="javascript">// actions.js import { INCREMENT_COUNTER } from './actionTypes'; export function incrementCounter() { return { type: INCREMENT_COUNTER, payload: 1 }; }</code>
type
필드가 있어야하며 payload
, error
또는 meta
필드가있을 수 있음을 지정합니다.이러한 모범 사례를 따르면 Redux에서 동작 유형을 효과적으로 관리하여 더 깨끗하고 유지 관리 가능한 코드를 만들 수 있습니다.
위 내용은 Redux Actions 란 무엇입니까? 당신은 그들을 어떻게 파견합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!