•리덕스는 왜 태어났을까?
react는 컴포넌트 기반의 자바스크립트 라이브러리 언어
시
컴포년트간 데이터(props)을 전달할 수 있는 기능
props : 상 하 일방용행으로만 데이터 전달 가능
- 부모 자식 = 외, props 불가능 /
- 남발, 서로간의 부.자 탄생
- 형제간 props = 비효율적으로 반드시 부모를 거치야하는 부작용
- state 상태변화 관리를 효율적으로 하기 위한 목적
state를 조회하기 위한 useSelector를 사용할 수 있다.
action을 발생시키기 위한 useDispatch를 사용할 수 있다.
Root folder:
YJ\YJ-github\GMA\YJ-React\230707\redux01
참고링크
https://ko.redux.js.org/introduction/getting-started
터미널에 설치하기 ↓
npm install redux
npm install react-redux
index.js
...
import { Provider } from 'react-redux'
import store from './redux/store';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<Provider store={store}>
<App />
</Provider>
);
import { createStore } from 'redux'
// ↑ reducer 함수를 가져오려면 꼭 필요
import reducer from './reducer'
const store = createStore(reducer);
export default store;
let initialState = {
}
const reducer = (state = initialState, action) => {
};
export default reducer;
참고링크
https://velog.io/@nibble/React-Redux%EB%A1%9C-Counter-%EB%A7%8C%EB%93%A4%EA%B8%B0-1
reducer: 함수 모음집
action: dispatch() <- 괄호 안의 내용..?
state: reducer의 반환값
payload: dispatch 함수, action 객체의 매개변수같은 역할
일단 기본 세팅 후
(순서가 무조건적인 건 아님,, 그저 이해하기 쉽게 풀어놓았다)
1. app.js에서 dispatch 함수 정의
2. reducer.js 에서 reducer 정의
3. app.js에서 useSelector로 reducer 가져오기
오..약간 알 것 같은데
reducer가 state가 들어있는 창고
dispatch로 함수를 가져와 쓰면 state 값이 변화되고
selector로 바뀐 state를 가져올 수 있다??
참고링크:
https://juhi.tistory.com/23
dispatch(type: 필수요소, payload(함수의 매개변수, 객체타입): 선택요소)