Undo
뜻 : "원상태로 돌리다"
- 작업 롤백과 읽기 일관성, 복구를 한다. (Ctrl + Z 처럼)
Redo
뜻 : "무언가를 되돌리는 것"
- 기본적으로 복구의 역할을 한다. 오라클 서버로 예시를 들면, 어떤 작업을 하든지 모두 REDO에 기록이된다. (Undo포함)
공통점 : Undo와 Redo는 '복구'를 한다는 것
차이점
- Redo는 복구를 할 때 사용자가 했던 작업을 그대로 다시 실행
- Undo는 사용자가 했던 작업을 반대로 진행. (사용자의 작업을 원상태로 되돌림)
Store 연결하려면
index.js
에서store, provider
를 추가 import해야한다.
외부자
를 위한 데이터내부자
를 위한 데이터useState
state가 setState 되었을 때, setState의 값이 state로 설정되어야 한다. == 기본 설정값(state)가 업데이트
현재 값과 action을 인수로 받음.
// redux - reducer
function reducer ( currentState, action ) {
// return으로 들어오는 값이 새로운 state가 된다.
}
immutability (변경불가성)을 원칙으로 한다.
1. 객체가 생성된 이후, 그 상태를 변경할 수 없는 디자인패턴. 함수형 프로그래밍의 핵심 원리다.
Redux의 특징 : 위 원칙에 따라서 하나의 상태(객체)를 갖는다.
⭐️ Redux는 각각의 state 변화를 불변하게(immutability) 유지해야 한다. 이를 위해선 새로운 state에 과거의 state를 복사하는 방법이 있다. (스프레드 연산자를 활용하여)
const newState = {... currentState} // 새로운 state = {과거 state} return newState;
import Code
App.js
import { createStore } from "redux";
import { provider, useSelector, useDispatch } from "react-redux" // 이중에서 index.js에 store와 provider를 각각 import 코드 작성하여 연결
state={ }
를 무조건 정의해야 한다.state = { // store를 넣어주면, 해당 store에서 state를 불러올 수 있음. }
App.js
function f( state ) {
return state.state에서_불러오고픈_깂; (ex - state.name;)
}
const name = useSelector(f)
// 축약 Code
const name = useSelector( (state) => {return state.name});
function reducer ( currentState, action ) {
if ( currentState === undefinde ) {
return {
number : 1,
};
}
const newState = {...currentState}; // 기존 state값을 newState 변수에 저장. 불변성을 지킴
return newState;
}
event.stopPropagation()
은 상위 요소가 이벤트를 감지할 수 없고, 이벤트리스너가 가르키고 있는 요소만 이벤트를 감지한다.⭐️ 상위 요소로 해당 이벤트를 전달하지 않고 자신만 이벤트를 감지하도록 하는 것
event.preventDefault()
는 등록되어있는 이벤트 말고는 다른 이벤트를 작동하지 못하게 한다.<a>
의 화면 이동, <form>에서의 submit으로 인한 <button>
의 새로고침 등 )
한주간 너무 고생많으셨습니다 ㅎㅎ