5

ShadowDOM에 관한 기사를 살펴보면 DocumentFragments의 기능이 향상 된 것처럼 보입니다. ShadowDOM의 진정한 이점은 무엇입니까? CSS 특이성? 프래그먼트로 거의 같은 일을 할 수 없습니까?ShadowDOM과 Document Fragments는 어떻게 다릅니 까?

각 기능에 대한 목록을 찾고 있습니다. 예를 들어, 둘 다 메모리와 메인 렌더링 경로에서 dom 트리를 조합 할 수있는 것처럼 보입니다. 그러나 ShadowDOM에는 범위가 지정된 CSS의 이점이 추가 된 것으로 보입니다.

ShadowDOM과 DocumentFragments 만 사용하려는 경우는 무엇입니까?

UPDATE

이 더 자신을 조사 후, 나는 두 기술이 완전히 직교 참조하십시오.

참고 : 질문이 마감되었으므로 직접 대답 할 수 없습니다. 나는 원래 내 발견의 세부 사항을 아래의 설명에 넣었지만 더 많은 사람들이 여기에서 텍스트를 확인하게 될 것이라고 생각했습니다. 문서 조각

는 DOM 오프 노드의 비를 계층 구조로 컬렉션을 (각각 다른 노드의 부모가 될 수있다) 생성에 사용되는 자바 스크립트/DOM 건설 도구이다. 그것들은 근본적으로 node-collection을 감싸는 래퍼이며, 조각이 DOM에 추가되면 버려집니다. DocumentFragments를 사용하면 같은 레벨에있는 다수의 노드를 수집하고이를 다른 DOM 노드에 형제로 추가 할 수 있습니다.

그림자 돔은 큰 렌더링 된 DOM 내에서 부작용을 격리합니다. ShadowDom을 사용하면 캡슐화 된 스타일로 샌드 박스 재사용 가능한 구성 요소를 만들 수 있습니다. ShadowDom 기반 구성 요소가 더 큰 웹 응용 프로그램에 추가되면 CSS 스타일이 나머지 응용 프로그램으로 누출되거나 응용 프로그램의 스타일이 구성 요소의 렌더링에 영향을 미치지 않습니다.

상위 DOM에서 shadowDom 구성 요소의 스타일을 지정 (및 선택)하기 위해 /deep/::shadow과 같은 CSS 결합자가 있지만 조만간 이들은 더 이상 사용되지 않을 예정입니다. 따라서 ShadowDOM을 사용하는 재사용 가능한 구성 요소는 CSS를 소비하는 응용 프로그램에서 사용자 정의하려는 경우 ShadowDOM을 사용하여 CSS 변수를 사용하여 스타일을 지정하는 것이 좋습니다.

+2

"주로 의견의 근거"에 대해 잘 모릅니다. 나는 어떤 의견도 요구하지 않았지만 객관적 비교와 능력과 목적의 대조를 요구했다. – Gopherkhan

+2

수정 사항을 답변으로 이동해야합니다. 따라서 질문은 다시 열어야합니다. – Oriol

+0

웹 구성 요소를 연구하는 멍청한 놈으로서 나는 같은 질문을했고 여기 많이 배웠다. 이러한 종류의 질문은 닫혀서는 안되지만 일단 답변을하면 스팸을 막기 위해 잠겨 야합니다. – Callat

답변

4

에서 내가 읽은 나는 그것을 사용하는 방법은, 당신은 ShadowDom 내부 <style> 태그를 넣을 경우 CSS에만 ShadowDom에 적용됩니다 같은 ShadowDom캡슐화과 관련이 무엇인지 및 문서 조각은 브라우저 리플 로우와 관련되어 있습니다.

+1

두 가지를 완전히 다른 목적으로 추가했습니다. Document Fragments는 DOM에서 생성 된 dom 노드 (계층 구조를 가질 수 있음)의 비 heirarchical 컬렉션을 만드는 데 사용되는 dom 생성 도구입니다. 그것들은 근본적으로 조각 모음이 dom에 추가되면 버려지는 노드 모음 주위의 래퍼입니다.이렇게하면 동일한 레벨에서 여러 노드를 수집하여 형제로서 dom에 놓을 수 있습니다. 그림자 돔은 렌더링 된 돔 내의 부작용을 격리합니다. – Gopherkhan