사용자가 어떤 행동(이벤트)을 하는 지 지켜보다가 알려주는 것 - 마우스 클릭, 터치, 오버, 키보드 입력 등
참고 : https://developer.mozilla.org/ko/docs/Web/Events
서버에서 주는 html이 1개 뿐인 앱
하나만 주는 이유 : 사용성 때문.
페이지 이동마다 html을 바꾸게 되면 상태 유지가 어렵고, 비효율적이다.
단점: 처음에 모든 컴포넌트를 받아오다보니 컴포넌트가 많다면 첫 로딩 속도가 느릴 수 있다.
SPA에서 주소창으로 다른 페이지를 보여줄 수 있는 기법
react-router-dom 패키지 이용.
참고 : https://v5.reactrouter.com/web/guides/primary-components
상태관리 흐름
1. 리덕스 Store를 Component에 연결
2. Component에서 상태 변화가 필요할 때 Action을 부른다
3. Reducer를 통해 새로운 값을 만든다
4. 새 상태값을 Store에 저장한다.
5. Component는 새로운 상태값을 받아온다.
개념과 용어
리덕스는 데이터를 한 군데 몰아넣고, 여기저기에서 꺼내볼 수 있게 해준다.
State : 리덕스에서 저장하고 있는 상태값, 딕셔너리 형태로 보관
Action : 상태에 변화가 필요할 때(데이터 변경) 발생
ActionCreator : 액션 생성 함수, 액션을 만들기 위해 사용
Reducer : 리덕스에 저장된 데이터를 변경하는 함수
Store : 리듀서, 어플리케이션 상태, 값을 가져오고 액션을 호출하기 위한 내장 함수 포함
dispatch : 스토어의 내장 함수, 액션을 발생시킨다.
특징
store는 1개만 쓴다.
store의 state는 오직 action으로만 변경가능
어떤 요청이 와도 리듀서는 같은 동작을 해야한다.
리덕스 사용을 위한 덕스 구조
https://github.com/erikras/ducks-modular-redux
실제 프로그래밍 언어에서 2진수로 숫자를 표기하지 않고, 10진수 혹은 정해진 진수를 사용한다. 다만, 이 숫자가 8진수()인지 16진수()인지 따로 표기는 하지 않고 아래와 같은 규칙에 따라 표기한다
시간 너무 부족하다 잠을 줄여도 부족하다.