캡슐화되고 웹 앱에 사용할 수 있는 재사용 가능한 커스텀 엘리먼트.
UI에서 원하는대로 사용할 수 있는 사용자 정의 요소 및 해당 동작을 정의할 수 있는 javascript api 세트
메인 dom으로부터 독립적으로 렌더링되는 element를 추가하고 제어하기 위한 Javascript api 집합.
엘리멘트의 기능을 private하게 유지할 수 있어 다른 element와 충돌없이 script와 style을 작성할 수 있음.
<template>
과 <slot>
은 렌더링 페이지에 나타나지 않는 마크업 템플릿을 작성할 수 있게 해줌
CustomELementRegistry.define()
으로 등록함.ELement.attachShadow()
로 shadow DOM을 커스텀 엘리먼트에 추가함.<template>
과 <slot>
으로 HTML 템플릿을 정의함.
오 처음보는 개념이에요!
javascript에서도 컴포넌트 개념을 사용할 수 있다니 신기합니다
이건 언젠가 바닐라 프로젝트에서 반드시 사용해보고 싶네요!