Element.slot
åºçº¿
广æ³å¯ç¨
èª 2020å¹´1æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
Elementæ¥å£ç slot 屿§ä¼è¿åå·²æå
¥å
ç´ æå¨ç Shadow DOM slot çåç§°ã
Slot æ¯åå¨äºweb componentå é¨çå ä½ç¬¦ï¼ç¨æ·å¯ä»¥éè¿ slot 屿§å¨ web component çå é¨æå ¥èªå®ä¹çæ è®°ææ¬ãï¼è¯¦è§ Using template and slotï¼
å¼
ä¸ä¸ªå符串ã
示ä¾
å¨ç¤ºä¾ simple-template example (å¨çº¿æ¥ç) ä¸ï¼æä»¬å建äºä¸ä¸ªç®åçèªå®ä¹å
ç´ å«å <my-paragraph> ï¼å¹¶ä¸ºå®æ·»å äº shadow rootï¼ç¶å使ç¨ä¸ä¸ªå
å«ä»¥ my-text为åç§°ç slot ç template æ¥å¡«å
å®ã
å½ <my-paragraph> å¨ææ¡£ä¸è¢«ä½¿ç¨æ¶ï¼slot æ ç¾ä¸çå
容ä¼è¢«å¡«å
å°æ¥æslot="my-text"屿§çå
ç´ ä¹ä¸ï¼æä»¬ç§°è¿ç§å
ç´ ä¸º slotable elementãï¼äºå®ä¸å¯ä»¥ç使¯æ¥æ slot 屿§çå
ç´ è¢«å¡«å
å°äº template 䏿<slot>æ ç¾åå¨çå°æ¹ï¼è¯·çä¸é¢ç示ä¾ï¼
<my-paragraph>
<span slot="my-text">Let's have some different text!</span>
</my-paragraph>
å¨ Javascript 代ç 䏿们è·åå°ä¸é¢ä»£ç ä¸ç span çå¼ç¨ï¼ç¶åå°å¯¹åºç <slot> å
ç´ çå¼ç¨çåç§°æå°å¨æ§å¶å°ä¸ã
let slottedSpan = document.querySelector("my-paragraph span");
console.log(slottedSpan.slot); // logs 'my-text'
è§è
| è§è |
|---|
| DOM > # ref-for-dom-element-slotâ > |