액션
- 상태 변경 방법을 정의하는 객체
- 상태를 변경해야 할 때 발생두고 객체로 표현하다.
- 유형이 필요합니다및 기타 값은 개발자가 마음대로 만들 수 있습니다.
// payload가 필요 없는 경우
{ type: 'INCREASE' }
// payload가 필요한 경우
{ type: 'SET_NUMBER', payload: 5 }
// 그 외의 값들
{
type: "ADD_TODO",
data: {
id: 0,
text: "안녕하세요"
}
}
액션 크리에이터
- 액션을 생성하는 함수
- 간단히 매개변수를 가져와 액션 객체로 바꿉니다..
- 필수는 아니지만 액션을 직접 작성하는 대신 액션 객체를 생성하는 함수
자주 만들어 사용합니다.액션이 트리거될 때마다 액션 객체를 직접 생성할 수 있습니다.
나중에 구성 요소에서 작업을 보다 쉽게 트리거하는 데 사용되므로
일반적으로 함수 앞에 export 키워드를 사용하여 다른 파일에서 가져옵니다.하다.
export function addTodo(data) {
return {
type: "ADD_TODO",
data
};
}
// 화살표 함수로도 만들 수 있다.
export const changeInput = text => ({
type: "CHANGE_INPUT",
text
});
// payload가 필요 없는 경우
const increase = () => {
return {
type: 'INCREASE'
}
}
// payload가 필요한 경우
const setNumber = (num) => {
return {
type: 'SET_NUMBER',
payload: num
}
}
배송
- Store의 기본 제공 기능 중 하나
- 리듀서에 액션 전달 기능
Action 객체는 Dispatch의 인수로 전달됩니다.하다.
액션 객체를 수신하는 디스패치 함수는 Reducer를 호출합니다.하다.당신이 전화할 때 Store는 감속기 기능을 실행합니다.순서대로 행동의 처리
논리가 있는 경우 새 상태를 만드는 작업을 참조하십시오.이러한 개념을 연결하는 것이 아래의 Redux Hooks입니다!
// Action 객체를 직접 작성하는 경우
dispatch( { type: 'INCREASE' } );
dispatch( { type: 'SET_NUMBER', payload: 5 } );
// 액션 생성자(Action Creator)를 사용하는 경우
dispatch( increase() );
dispatch( setNumber(5) );
감속기
- 새로운 상태를 생성하는 순수 함수
외부 요인이 상태를 예상 값이 아닌 예상치 못한 값으로 변경하는 것을 방지합니다.
순전히 이를 방지하기 위한 기능이어야 합니다. - Dispatch가 전달한 Action 객체의 type 값에 따라 state를 변경하는 함수
const count = 1
// Reducer를 생성할 때에는 초기 상태를 인자로 요구합니다.
const counterReducer = (state = count, action) => {
// Action 객체의 type 값에 따라 분기하는 switch 조건문입니다.
switch (action.type) {
//action === 'INCREASE'일 경우
case 'INCREASE':
return state + 1
// action === 'DECREASE'일 경우
case 'DECREASE':
return state - 1
// action === 'SET_NUMBER'일 경우
case 'SET_NUMBER':
return action.payload
// 해당 되는 경우가 없을 땐 기존 상태를 그대로 리턴
default:
return state;
}
}
// Reducer가 리턴하는 값이 새로운 상태가 됩니다.
쇼핑
- 정부 운영 유일한 저장소 역할
Redux에서는 애플리케이션당 하나의 저장소를 만듭니다.
- 스토어에는 현재 앱 상태, 감속기 및 일부 내장 기능이 포함되어 있습니다.
import { createStore } from 'redux';
const store = createStore(rootReducer);
Redux의 데이터 흐름
액션 → 출하 → 감속기 → 저장
리덕스 훅
useDispatch()
- Action 객체를 리듀서에 전달하는 디스패치 함수를 반환하는 메서드입니다.
// 위에 Dispatch 예시에서 Dispatch 함수도 useDispatch()를 사용해서 만든 것
// Redux Hooks 메서드는 'redux'가 아니라 'react-redux'에서 불러온다.
import { useDispatch } from 'react-redux'
const dispatch = useDispatch()
dispatch( increase() )
console.log(counter) // 2
dispatch( setNumber(5) )
console.log(counter) // 5
useSelector()
- store에 저장된 state에 접근하기 위해 컴포넌트와 state를 연결하는 메소드
( = Redux 상태에 액세스하기 위해 구성 요소와 상태를 연결하는 방법)
// Redux Hooks 메서드는 'redux'가 아니라 'react-redux'에서 불러온다.
import { useSelector } from 'react-redux'
const counter = useSelector(state => state)
console.log(counter) // 1