이제 항해의 33.33333....%를 넘어간다.
이번주차는 주특기 심화를 했는데 저번 주의 굴욕을 시원(?)하게 갚은 것 같아 보람찼다.
실제로 파이어베이스와 데이터 통신을 주고 받으면서 리액트로 CRUD를 해보는 첫 프로젝트였는데
리덕스의 흐름이라던가, 불필요한 리렌더링을 막기위한 것들등을 배웠던 것 같다.
다음은 클론코딩이다. 지금까지 배웠던 것을 복습하고, 본격적으로 체득하는 기간이라고 생각을 하고있다.
그리고 백엔드와 처음으로 하는 프로젝트인만큼 스무스하게 프로젝트가 진행됐으면 좋겠다.
JS에서 무적권 조심해야하는 개념
{} === {} //false
const a = {}
const b = a
a === b // true
객체를 참조관계가 있으면 참이다.
리덕스에서 왜 객체를 새로 만드는가? 새로 만들어야 변경내역이 추적이된다.
...state => 안바뀌는 애들은 참조관계를 유지하고 있어서 메모리가 정리된다.
무언가를 입력할 때마다 검색을 새로 하면 연관 검색어 같은 걸 빨리 바꿔줄 수 있다
그런데 검색어를 빠르게 검색을 한다면 짧은 시간에 엄청나게 많이 검색을 해야함난다.
이럴 때 특정 시간마다 1번씩, 혹은 키보드 입력을 멈췄을 때만 1번 해주는 게 검색 횟수를 줄일 수
있는데 그 때 사용하 것이 Throttle 과 Debounce다.
특히 api를 불러야 할 때는, 순식간에 엄청 많은 서버 요청이 날아가는 걸 막아줄 수 있다.
1) debounce란?
이벤트가 일어나면, 일정 시간을 기다렸다가 이벤트를 수행한다.
그리고 일정 시간 내에 같은 이벤트가 또 들어오면 이전 요청은 취소한다.
2) throttle이란?
일정 시간 동안 일어난 이벤트를 모아서 주기적으로 1번씩 실행한다