ì¹ ì»´í¬ëí¸ë ê·¸ 기ë¥ì ëë¨¸ì§ ì½ëë¡ë¶í° 캡ìííì¬ ì¬ì¬ì© ê°ë¥í 커ì¤í ì리먼í¸ë¥¼ ìì±íê³ ì¹ ì±ìì íì©í ì ìëë¡ í´ì£¼ë ë¤ìí 기ì ë¤ì 모ìì ëë¤.
ê°ë ë° ì¬ì©ê°ë°ìë¡ì ì°ë¦¬ 모ëë ê°ë¥í í ì½ë를 ì¬ì¬ì©íë ê²ì´ ì¢ì ìê°ì´ë¼ë ê²ì ìê³ ììµëë¤. ì´ë ì íµì ì¼ë¡ 커ì¤í ë§í¬ì 구조ìì ì½ì§ ìììµëë¤. 커ì¤í UI 컨í¸ë¡¤ì ë ëë§í기ìí´ ìì±í´ì¼íë ë³µì¡í HTML (ë° ê´ë ¨ë ì¤íì¼ê³¼ ì¤í¬ë¦½í¸)ì ìê°í´ë³´ììì¤. ì¬ë¬ë² ì¬ì©í ë ì¡°ì¬íì§ ìì¼ë©´ íì´ì§ê° ìë§ì´ ë ì ììµëë¤.
ì¹ ì»´í¬ëí¸ë ë¤ì 문ì ë¤ì í´ê²°íë ê²ì 목íë¡ í©ëë¤ â ì¸ ê°ì§ 주ì 기ì ë¤ë¡ 구ì±ëë©°, ì¬ì¬ì©ì ìíë ì´ëê³³ì´ë ì½ë ì¶©ëì ëí ê±±ì ì´ ìë 캡ìíë 기ë¥ì ê°ì¶ ë¤ì©ëì 커ì¤í ì리먼í¸ë¥¼ ìì±í기 ìí´ í¨ê» ì¬ì©ë ì ììµëë¤.
<template>
ê³¼ <slot>
ì리먼í¸ë ë ëë§ë íì´ì§ì ëíëì§ ìë ë§í¬ì
í
í릿ì ìì±í ì ìê² í´ì¤ëë¤. ê·¸ í, 커ì¤í
ì리먼í¸ì 구조를 기ë°ì¼ë¡ ì¬ë¬ë² ì¬ì¬ì©í ì ììµëë¤.ì¹ ì»´í¬ëí¸ë¥¼ 구íí기 ìí 기본 ì ê·¼ë²ì ì¼ë°ì ì¼ë¡ ë¤ìê³¼ ê°ìµëë¤.
CustomElementRegistry.define()
ë©ìë를 ì¬ì©í´ ìë¡ì´ 커ì¤í
ì리먼í¸ë¥¼ ë±ë¡íê³ , ì ìí ìë¦¬ë¨¼í¸ ì´ë¦, 기ë¥ì ëª
ìíê³ ìë í´ëì¤, (ì íì ì¼ë¡) ììë°ì ì리먼í¸ë¥¼ ì ë¬í©ëë¤.Element.attachShadow()
ë©ìë를 ì¬ì©í´ shadow DOM ì 커ì¤í
ì리먼í¸ì ì¶ê°í©ëë¤. ì¼ë°ì ì¸ DOM ë©ìë를 ì¬ì©í´ ìì ì리먼í¸, ì´ë²¤í¸ 리ì¤ë ë±ì shadow DOM ì ì¶ê°í©ëë¤.<template>
ê³¼ <slot>
ì ì¬ì©í´ HTML í
í릿ì ì ìí©ëë¤. ë¤ì ì¼ë°ì ì¸ DOM ë©ìë를 ì¬ì©í´ í
í릿ì í´ë¡ íê³ shadow DOM ì ì¶ê°í©ëë¤.ê°ë¨í ì¹ ì»´í¬ëí¸ë¥¼ ìì±íë 커ì¤í ì리먼í¸ì 기ë¥ì ì¬ì©íë ë°©ë²ê³¼ ë¼ì´íì¬ì´í´ ì½ë°± ë° ê·¸ ì¸ ê³ ê¸ ê¸°ë¥ë¤ì ë³´ì¬ì£¼ë ê°ì´ëì ëë¤.
shadow DOM 기본ì ì´í´ë³´ê³ , shadow DOM ì ì리먼í¸ì ì¶ê°íê³ , shadow DOM í¸ë¦¬ë¥¼ ì¶ê°íê³ ì¤íì¼ë§íë ë°©ë² ë±ì ë³´ì¬ì£¼ë ê°ì´ëì ëë¤.
<template>
ê³¼ <slot>
ì리먼í¸ë¥¼ ì¬ì©í´ ì¬ì¬ì©ê°ë¥í HTML 구조를 ì ìíë ë°©ë²ê³¼ ì¹ ì»´í¬ëí¸ ë´ìì ê·¸ 구조를 ì¬ì©íë ë°©ë²ì ë³´ì¬ì£¼ë ê°ì´ëì
ëë¤.
CustomElementRegistry
커ì¤í
ì리먼í¸ì ê´ë ¨ë 기ë¥ì í¬í¨íë©°, ìë¡ì´ 커ì¤í
ì리먼í¸ë¥¼ ë±ë¡íì¬ ë¤í먼í¸ìì ì¬ì©í ì ìëë¡ í´ì£¼ë CustomElementRegistry.define()
ë©ìëê° ê°ì¥ 주ìí©ëë¤.
Window.customElements
CustomElementRegistry
ê°ì²´ì ëí 참조를 ë°íí©ëë¤.
커ì¤í ì리먼í¸ì í´ëì¤ ì ì ë´ì ì ìëì´ ëìì ìí¥ì 주ë í¹ë³í ì½ë°± í¨ìì ëë¤.
connectedCallback
: 커ì¤í
ì리먼í¸ê° ì²ìì¼ë¡ ë¤í먼í¸ì DOM ì ì°ê²°ëìì ë í¸ì¶ë©ëë¤.disconnectedCallback
: 커ì¤í
ì리먼í¸ê° ë¤í먼í¸ì DOM ì¼ë¡ë¶í° ì°ê²° í´ì ëìì ë í¸ì¶ë©ëë¤.adoptedCallback
: 커ì¤í
ì리먼í¸ê° ìë¡ì´ ë¤í먼í¸ë¡ ì´ëëìì ë í¸ì¶ë©ëë¤.attributeChangedCallback
: 커ì¤í
ì리먼í¸ì ì´í¸ë¦¬ë·°í¸ê° ì¶ê°, ì ê±° ëë ë³ê²½ëìì ë í¸ì¶ë©ëë¤.The following extensions are defined:
is
ì ì HTML ì´í¸ë¦¬ë·°í¸: íì¤ HTML ì리먼í¸ê° ë±ë¡ë 커ì¤í
ë´ì¥ ì리먼í¸ì²ë¼ ëìíëë¡ ì§ì ì íì©í©ëë¤.Document.createElement()
ë©ìëì "is" ìµì
: 주ì´ì§ ë±ë¡ë 커ì¤í
ë´ì¥ ì리먼í¸ì²ë¼ ëìíë íì¤ HTML ì리먼í¸ì ì¸ì¤í´ì¤ë¥¼ ìì±íë ê²ì íì©í©ëë¤.커ì¤í ì리먼í¸ì ê´ë ¨ë ìë í´ëì¤ì ëë¤.
:defined
: ë´ì¥ ì리먼í¸ì CustomElementRegistry.define()
ì¼ë¡ ì ìë 커ì¤í
ì리먼í¸ë¥¼ í¬í¨í´, ì ìë 모ë ì리먼í¸ì ì¼ì¹í©ëë¤.:host
: ëì CSS 를 ë´ë¶ì í¬í¨íê³ ìë shadow DOM ì shadow í¸ì¤í¸ë¥¼ ì íí©ëë¤.:host()
: ëì CSS 를 ë´ë¶ì í¬í¨íê³ ìë shadow DOM ì shadow í¸ì¤í¸ë¥¼ ì íí©ëë¤(ë°ë¼ì shadow DOM ë´ë¶ìì 커ì¤í
ì리먼í¸ë¥¼ ì íí ì ììµëë¤) â í¨ìì íë¼ë¯¸í°ë¡ì¨ 주ì´ì§ ì
ë í°ê° shadow í¸ì¤í¸ì ì¼ì¹íë ê²½ì°ìë§ í´ë¹í©ëë¤.:host-context()
: ëì CSS 를 ë´ë¶ì í¬í¨íê³ ìë shadow DOM ì shadow í¸ì¤í¸ë¥¼ ì íí©ëë¤(ë°ë¼ì shadow DOM ë´ë¶ìì 커ì¤í
ì리먼í¸ë¥¼ ì íí ì ììµëë¤) â í¨ìì íë¼ë¯¸í°ë¡ì¨ 주ì´ì§ ì
ë í°ê° DOM ê³ì¸µ ë´ì ìì¹í shadow í¸ì¤í¸ì ì¡°ìì ì¼ì¹íë ê²½ì°ìë§ í´ë¹í©ëë¤.ShadowRoot
shadow DOM íì í¸ë¦¬ì ë£¨í¸ ë ¸ë를 ëíë ëë¤.
DocumentOrShadowRoot
ë¤í먼í¸ì shadow ë£¨í¸ ëª¨ëìì ì¬ì©ê°ë¥í 기ë¥ì ì ìíë 믹ì¤ì¸
Element
íì¥ ê¸°ë¥
shadow DOM ì ê´ë ¨ë Element
ì¸í°íì´ì¤ì íì¥ ê¸°ë¥ì
ëë¤.
Element.attachShadow()
ë©ìëë shadow DOM í¸ë¦¬ë¥¼ ì§ì ë ì리먼í¸ì ì¶ê°í©ëë¤.Element.shadowRoot
íë¡í¼í°ë ì§ì ë ì리먼í¸ì ì¶ê°ë shadow 루í¸ë¥¼ ë°íí©ëë¤. ì¶ê°ë shadow 루í¸ê° ìì ê²½ì° null
ì ë°íí©ëë¤.Node
ì¶ê° ê´ë ¨
shadow DOM ê³¼ ê´ë ¨ë Node
ì¸í°íì´ì¤ì ì¶ê°
Node.getRootNode()
ë©ìëë ì¬ì© ê°ë¥í shadow 루í¸ê° ìì ê²½ì° ì íì ì¼ë¡ ì´ë¥¼ í¬í¨íë 컨í
ì¤í¸ì ê°ì²´ì 루í¸ë¥¼ ë°íí©ëë¤.Node.isConnected
íë¡í¼í°ë ë
¸ëê° ì§ì ëë ê°ì ì ì¼ë¡ 컨í
ì¤í¸ ê°ì²´(ì를 ë¤ë©´, ì¼ë° DOM ì ê²½ì° Document
ê°ì²´, shadow DOM ì ê²½ì° ShadowRoot
)ì ì°ê²°ëìëì§ë¥¼ ëíë´ë boolean ì ë°íí©ëë¤.Event
íì¥ ê¸°ë¥
shadow DOM ê³¼ ê´ë ¨ë Event
ì¸í°íì´ì¤ì íì¥ ê¸°ë¥
Event.composed
: ì´ë²¤í¸ê° shadow DOM ììì ê±°ì³ ì¼ë° DOM ì¼ë¡ ì í ëëì§ë¥¼ ëíë´ë Boolean
ì ë°íí©ëë¤(ì íëë©´ true
, ê·¸ë ì§ ìì¼ë©´ false
)Event.composedPath
: ì´ë²¤í¸ì í¨ì¤(ì´ë²¤í¸ê° í¸ì¶ë ê°ì²´)를 ë°íí©ëë¤. shadow 루í¸ê° ShadowRoot.mode
closed ë¡ ìì±ëê²½ì° shadow í¸ë¦¬ì ë
¸ë를 í¬í¨íì§ ììµëë¤.<template>
ë¤í먼í¸ê° ì²ì ë¡ëë ë ë ëë§ëì§ ìì§ë§ JavaScript를 ì¬ì©íë ë°íìì ëíëë HTML ì¡°ê°ì í¬í¨í©ëë¤. ì£¼ë¡ ì»¤ì¤í
ìë¦¬ë¨¼í¸ êµ¬ì¡°ì 기본ì¼ë¡ ì¬ì©ë©ëë¤. ê´ë ¨ë DOM ì¸í°íì´ì¤ë¡ HTMLTemplateElement
ê° ììµëë¤.
<slot>
ìì ë§ì ë§í¬ì
ì¼ë¡ ì±ì¸ ì ìë ì¹ ì»´í¬ëí¸ ë´ë¶ì placeholder ì
ëë¤. ë³ëì DOM í¸ë¦¬ë¡ ìì±íê³ í¨ê» ë³´ì¬ì¤ ì ìê² í´ì¤ëë¤. ê´ë ¨ë DOM ì¸í°íì´ì¤ë¡ HTMLSlotElement
ê° ììµëë¤.
slot
ì ì HTML ì´í¸ë¦¬ë·°í¸
shadow DOM shadow í¸ë¦¬ë´ì slotì ì리먼í¸ë¡ í ë¹í©ëë¤.
Slotable
Element
ì Text
ë
¸ëë¡ êµ¬íë 믹ì¤ì¸ì
ëë¤. <slot>
ì리먼í¸ì 컨í
ì¸ ë¡ ë§ë¤ê¸° ìí 기ë¥ë¤ì ì ìí©ëë¤. 믹ì¤ì¸ì ë
¸ëê° ì½ì
ë ì¬ë¡¯ì 참조를 ë°ííë íëì ì´í¸ë¦¬ë·°í¸ Slotable.assignedSlot
ì ì ìí©ëë¤.
Element
íì¥ ê¸°ë¥
ì¬ë¡¯ê³¼ ê´ë ¨ë Element
ì¸í°íì´ì¤ íì¥ ê¸°ë¥
Element.slot
: ì리먼í¸ì ì¶ê°ë shadow DOM ì¬ë¡¯ì ì´ë¦ì ë°íí©ëë¤.ì¬ë¡¯ê³¼ ê´ë ¨ë ìë ì리먼í¸ì ëë¤.
::slotted
: ì¬ë¡¯ì¼ë¡ ì½ì
ë 모ë 컨í
ì¸ ì ì¼ì¹í©ëë¤.slotchange
ì´ë²¤í¸
ì¬ë¡¯ì í¬í¨ë ë
¸ëê° ë³ê²½ë ë HTMLSlotElement
ì¸ì¤í´ì¤(<slot>
ì리먼í¸)ìì ì¤íë©ëë¤.
web-components-examples GitHub ì ì¥ìì ë§ì ìì 를 ìì±íììµëë¤. ë ë§ì ìì ê° ì¶ê°ë ìì ì ëë¤.
ëª ì¸ì ë¸ë¼ì°ì í¸íì±ì¼ë°ì ì¸ ê²½ì°,
í¹ì 기ë¥ë¤ì ë¸ë¼ì°ì ì§ìì ëí ìì¸ ë´ì©ì, ìì ëì´ë ë í¼ë°ì¤ íì´ì§ë¤ìì ì°¾ìë³´ì기 ë°ëëë¤.
í¨ê» 보기class
ì this 문ë²ë³´ë¤ ì¼ë° ê°ì²´ì ìì í¨ì를 ì í¸í©ëë¤. 커ì¤í
ìë¦¬ë¨¼í¸ ìì±ì ìí ê°ë¨í í¨ìí API 를 ì ê³µí©ëë¤.RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4