2023.03.31
2023.04.04
2023.04.05
2023.04.11
2023.04.12
2023.04.13
2023.04.14
2023.04.17
2023.04.20
2023.04.24
2023.05.01
2023.05.06
2023.05.08
2023.06.06
2023.06.07
2023.06.10
2023.06.20
2023.06.21
2023.06.22
2023.06.23
2023.06.27
2023.06.28
2023.06.29
2023.06.30
2023.07.04
2023.07.06
2023.07.07
2023.07.09
Loading...
Share
👍
Replies 3
    bob
    million.js 에 대해 더 잘 이해할 수 있는 글
    bob
    block virtual dom 이라고 하는구나..
    bob
    블록 가상 DOM을 사용하면 좋은 경우

    정적 콘텐츠가 많고 동적 콘텐츠가 적은 경우
    블록 가상 DOM은 동적 콘텐츠가 적고 정적 콘텐츠가 많은 경우에 가장 적합합니다. 블록 가상 DOM의 가장 큰 장점은 가상 DOM의 정적 부분을 고려할 필요가 없기 때문에 많은 정적 콘텐츠를 건너뛸 수 있다면 매우 빠를 수 있다는 것입니다.

    관리 대시보드나 정적 콘텐츠가 많은 컴포넌트로 구성된 웹사이트를 구축하는 경우 블록 가상 DOM이 적합할 수 있습니다. 그러나 데이터 차이를 확인하는데 소요되는 계산이 가상 DOM 차이를 확인하는 계산보다 훨씬 큰 웹사이트를 구축하는 경우에는 큰 차이를 느끼지 못할 수도 있습니다.
    예를 들어, 이 컴포넌트는 가상 DOM 노드 수보다 차이점을 비교해야 하는 데이터 값이 더 많으므로 블록 가상 DOM에 적합하지 않을 수 있습니다.
    // 5개의 데이터 값 차이 function Component({ a, b, c, d, e }) { // 1개의 가상 DOM 차이 return {a + b + c + d + e}; }
    "안정된" UI 트리
    블록 가상 DOM은 "안정된" UI 트리 또는 많이 변경되지 않는 UI 트리에도 적합합니다. Edit Map은 한 번만 생성되므로 렌더링할 때마다 다시 생성할 필요가 없기 때문입니다.
    예를 들어 다음 컴포넌트는 블록 가상 DOM에 적합한 후보입니다.
    function Component() { // ✅ 좋음, 결정론적/안정적인 반환이므로 return {dynamic}; }
    하지만 이 컴포넌트는 일반 가상 DOM보다 느릴 수 있습니다.
    function Component() { // ❌ 나쁨, 비결정적/불안정적이므로 return Math.random() > 0.5 ? {dynamic} : sad; }
    "목록과 같은" 형태를 따르는 비결정적/불안정적인 반환을 사용해야 하는 경우, For 컴포넌트를 사용하면 도움이 될 수 있습니다.
    애플리케이션 UI를 구조화할 방법에 제한이 있다는 점에 유의하세요. "안정적" 반환은 목록과 같은 동적 모양이 아닌 컴포넌트(예: 동일한 컴포넌트 내의 조건부 반환)는 허용되지 않음을 의미합니다.
    세밀하게 사용하기
    초보자가 저지르는 큰 실수 중 하나는 블록 가상 DOM을 모든 곳에 사용하는 것입니다. 블록 가상 DOM은 만병통치약이 아니며 일반 가상 DOM보다 항상 빠른 것은 아니기 때문에 이는 좋지 않은 생각입니다.
    대신 블록 가상 DOM이 더 빠른 특정 패턴을 인식해야 하고, 해당 경우에만 사용해야 합니다. 예를 들어 큰 테이블에는 블록 가상 DOM을 사용하지만, 정적 콘텐츠가 적은 작은 폼에는 일반 가상 DOM을 사용할 수 있습니다.