[12팀 정석호] [Chapter 1-2] 프레임워크 없이 SPA 만들기 Part 2 #5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
과제 체크포인트
기본과제
가상돔을 기반으로 렌더링하기
이벤트 위임
심화 과제
1) Diff 알고리즘 구현
2) 포스트 추가/좋아요 기능 구현
과제 셀프회고
기술적 성장
이번 과제에서는 리액트의 key 방식을 사용하는 배경에 대해서 좀 알게 되었습니다.
코드 품질
TypeScript 를 도입해서 VNode / NormalizeVNode 를 구분 하는 등 각종 VNode 다루는 함수에서 빌드타임에서 버그를 미리 방지할 수 있도록 타이핑해두었습니다.
updateElement 파일에 있는 calculateUpdateOperation 를 통해 newNode 와 oldNode 를 비교해 추가/삭제/변경인지 판단해서 동작에 대한 구분을 더 명시적으로 할 수 있도록 처리했습니다.
최적화 구현
리팩토링이 필요한 부분
data-add-type
으로 prepend 를 할지 아닐지를 결정할 수 있게 열어두었습니다.리뷰 받고 싶은 내용