티스토리 뷰

create portal은 정말 도움이 될까?

create portal을 사용하는 가장 특징, 이유는 특정 컴포넌트를 부모 노드 밖에 존재하는 노드에서 랜더링하기 위함이다. 이를 통한 가장 큰 이점은 DOM 트리를 정리할 수 있다는 점이다.

 

DOM 트리를 왜 정리해야할까?
  1. 네크워크 효율성 및 성능 부하
    많은 노드를 필요로 하는 DOM트리는 사용자가 페이지를 처음 로드 할 때, 필요로 하지 않는 트리까지 그려야하기 때문에 많은 데이터 비용을 필요로 하여 결과적으로 로드 시간이 증가한다.
  2. 런타임 성능
    사용자와 스크립트가 상호 작용을 할 때는 노드의 위치와 스타일을 지속적으로 계산한다. 따라서 복잡한 트리를 가지고 있으면 체크해야 하는 노드가 많아지고 이는 결과적으로 렌더링 속도의 저하가 된다.
  3. 메모리 성능
    document.querySelector과 같은 쿼리 선택기는 많은 노드에 대한 참조를 체크 및 저장하고, 이는 사용자 메모리 용량에 과도한 부하를 일으킨다.

 

DOM 트리는 이처럼 속도에 아주 밀접한 관계가 있다. 심지어 구글 dev tool 중 하나인 LightHouse는 body에 800개 이상의 노드가 있는 경우 경고를, 1,400개 이상의 노드가 있는 경우 오류를 발생시킨다.

 

DOM을 최적화 하기 위한 방법

많은 곳에서 DOM 노드를 만들고, 필요로 하지 않을 때에는 파괴하는 방식을 권하고 있다. 나는 이러한 방식 중 하나가 react의 creat portal과 js의 shadow dom이 아닐까 한다.

  1. create portal
    https://hyermione.tistory.com/84
 

리액트 create portal 이란 무엇인가. 이제 여기에 모달 예제를 곁들여보자. 토스트 메세지도 가능하

TMI. 자꾸 날리는 바람에 이 주제 관련 포스팅만 몇 번째 쓰는지 모르겠다 ㅠㅠ 리액트 공식 홈페이지에서는 create Potals를 다음과 같이 설명하고 있다. Portals provide a first-class way to render children..

hyermione.tistory.com

  2.  shadow dom
        https://hyermione.tistory.com/88

 

DOM과 virtualDom. 그리고 shadowDom인데 이제 섀도우 돔을 중심으로

며칠 전, 전 직장 사수와 이야기 하다가 나온 개념. 미래에 어떻게 될 지 모르겠지만 Shadow Dom이 뜰 수도 있고, 이대로 가라앉을수도 있고. 아니 무슨 말이 이렇게 애매모호해? 그리고 shadow Dom이

hyermione.tistory.com

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함