-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat(core): childfiber내에서 reconcileChildFibers뼈대 구현 reconcileChildFibers의 뼈대를 구현하였습니다. 이는 ChildReconciler가 반환하는 함수로써 childReconciler내부의 헬퍼들을 이용하여 child를 재조정하는데 사용됩니다. 여기서 ChildReconciler의 인자인 shouldTrackSideEffects를 통해 마운트를 하고 있는지, update를 하고있는지 분리할 수 있습니다. reconcileChildFibers는 일반적으로 파이버를 생성하고(reconcile)이를 place와 같은 방식으로 배치까지(sideEffect를 가함) 진행합니다. 또한 이 함수는 재귀적이지 않습니다. 이말은 모든 자식을 풀어서 제공하는게 아니라 현재 레벨까지 만 재조정을 한후 리턴하고 이후에 다시 performUniofwork가 호출됨으로써 자식까지 타고 가면서 처리되는 구조를 취합니다. * feat(fiber): ReconcileSingleElement를 위한 헬퍼함수들 구현 해당 함수들을 구현했습니다. 여기서 주의할 것은 삭제나 이런것이 일어났더라도 실제 삭제가 아니라 sideEffect로 남겨두고 나중에 처리되는걸 의미하는걸 주의해야합니다. * feat(fiber,type): ElemenType,type에 대한 설명수정 및 reconcile관련 헬퍼함수(update)와 childReconcile구현 ElemntType,Type에 대한 설명: 해당 설명이 잘못되어 있어서 수정하고 이는 중요한 참고사항입니다. ElementType ElementType:은 재조정(reconcile)상황에서 비교를 진행할떄 매칭해나가면서 신원을 확인할떄 사용됩니다. fiber.ElementType === element.type이런식으로 비교를 해나가는데 여기서 element는 RfsElement로 jsx를 통해서 들어오면서 생기는 type에 해당하고 fiber내부에서 이것과 비교를 하기위해 신원확인을 위해 사용합니다. Type: 내부정으로 재조정후에 실제 컴포넌트를 불러야되거나, context를 확인해야되는등 내부적으로 처리될떄 사용되는 type입니다. Reconcile 관련: 재조정관련해서 update에 관련된 함수가 많은데 기본적으로 newChild가 null이 아닌경우 type비교를 통해서 재사용할 수 있으면 재사용하고 아니면 만들어서 받은 것을 통해서 파이버를 만들어서 뱉어준다라고 생각하면됩니다. placeChild 관련: 기본적으로 파이버는 list구조를 띄고 파이버 내에서 이동이란 list내에서 이동을 뜻합니다. 그렇다라는 것은 자신이 가르키고 있는 next가 바뀌는 상황을 의미하고 이럴떄만 sideEffect-PlaceMent를 붙여줍니다. 자세한 내용은 해당 코드의 주석을 참조하시길 바랍니다. reconcileChildrenArray 관련: 해당 알고리즘 로직은 먼저 현재 파이버 리스트가 변경되지 않았다 라고 가정하고 진행하다가 변경이 가해지면 phase2로 나머지 친구들을 map에 넣고 그것을 통해 비교하는 로직으로 진행됩니다. 자세한 로직은 코드를 참조하면 됩니다. * feat(fiber): reconcileChildrenIterator구현 단순히 reconcileChildrenArray의 로직을 이터러블로 수정하고, 해당 이터러블이 이터러블인지, 그 이터러블이 이터레이터를 제공하는지 에대한 로직만 추가로 들어가있을 뿐입단순히 reconcileChildrenArray의 로직을 이터러블로 수정하고, 해당 이터러블이 이터러블인지, 그 이터러블이 이터레이터를 제공하는지 확인하는 부분만 추가로 있을 뿐입니다. 작동알고리즘은 childrenArray부분을 확인하면 됩니다. * FY-212/feat(fiber): reconcileChildFibers export 외부에 export하고, mountChild할떄는 false를 reconcile할떄 true사용 * FY-212/fix(core,hooks): 기본의 주석이나, import관련 명세 수정 import가 안되어 있던것이나, hook관련해서 설명이 좀 적은 것들을 주석을 추가하였습니다. * FY-212/fix(type, hooks): 관련된 설명, typeImport이슈 해결 관련된 타입 import해결 이슈를 해결하고 훅 내부적인 로직을 설명하는 부분관련 주석을 추가하였습니다. --------- Co-authored-by: daekuelee <[email protected]>
- Loading branch information
Showing
22 changed files
with
110 additions
and
65 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,5 +10,3 @@ const TContextItem = { | |
observedBits: 0, | ||
next: null, | ||
}; | ||
|
||
export default TContextItem; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.