π³ DOM -- Document Object Model
Map of Content Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ DOM: ΠΏΠΎΠΈΡΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΡ, ΡΠΎΠ±ΡΡΠΈΡ, Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ UI.
π ΠΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ
DOM -- ΡΡΠΎ ΠΌΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ JavaScript ΠΈ HTML-ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ. Π§Π΅ΡΠ΅Π· DOM ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠ°ΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΡΠ΄Π°Π»ΡΡΡ Π»ΡΠ±ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ DOM Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π»ΡΠ±ΡΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ -- ΡΡΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π½Π°Π΄ DOM.
πΊ ΠΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
π’ ΠΠ°ΡΠΈΠ½Π°ΡΡΠΈΠΉ
ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ
- DOM Π΄Π΅ΡΠ΅Π²ΠΎ
- DOM-Π΄Π΅ΡΠ΅Π²ΠΎ -- ΡΠ·Π»Ρ ΠΈ ΡΠΈΠΏΡ ΡΠ·Π»ΠΎΠ²
- document ΠΈ window
- DOM vs HTML -- Π² ΡΡΠΌ ΡΠ°Π·Π½ΠΈΡΠ°
ΠΠΎΠΈΡΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
- ΠΠΎΠΈΡΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
- querySelectorAll ΠΈ NodeList
- getElementById, getElementsByClassName
- closest -- ΠΏΠΎΠΈΡΠΊ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ
Π‘Π²ΠΎΠΉΡΡΠ²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
- textContent, innerHTML, innerText
- ΠΡΡΠΈΠ±ΡΡΡ -- getAttribute, setAttribute
- data-Π°ΡΡΠΈΠ±ΡΡΡ (dataset)
- classList -- add, remove, toggle, contains
- style -- ΠΈΠ½Π»Π°ΠΉΠ½-ΡΡΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· JS
π‘ Π‘ΡΠ΅Π΄Π½ΠΈΠΉ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ
- ΠΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΡ DOM
- createElement ΠΈ createTextNode
- append, prepend, before, after
- cloneNode -- ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- insertAdjacentHTML
- DocumentFragment -- ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ
Π‘ΠΎΠ±ΡΡΠΈΡ
- Π‘ΠΎΠ±ΡΡΠΈΡ
- ΠΡΠΏΠ»ΡΡΠΈΠ΅ ΠΈ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΠ΅
- ΠΡΠΏΠ»ΡΡΠΈΠ΅ ΠΈ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΠ΅
- ΠΠ΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ
- preventDefault ΠΈ stopPropagation
- ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ -- CustomEvent
Π’ΠΈΠΏΡ ΡΠΎΠ±ΡΡΠΈΠΉ
- Π‘ΠΎΠ±ΡΡΠΈΡ ΠΌΡΡΠΈ -- click, mouseover, mouseenter
- Π‘ΠΎΠ±ΡΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ -- keydown, keyup
- Π‘ΠΎΠ±ΡΡΠΈΡ ΡΠΎΡΠΌΡ -- submit, input, change
- Π‘ΠΎΠ±ΡΡΠΈΡ ΡΠΎΠΊΡΡΠ° -- focus, blur
- Π‘ΠΎΠ±ΡΡΠΈΠ΅ scroll
- Π‘ΠΎΠ±ΡΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ -- DOMContentLoaded, load
ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΏΠΎ DOM
- parentElement, children, siblings
- firstChild, lastChild, nextSibling
- Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ childNodes ΠΈ children
π΄ ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ
ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ API
- MutationObserver -- Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π·Π° DOM
- IntersectionObserver
- ResizeObserver -- ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°
- getBoundingClientRect -- ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΡ
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ DOM
- Browser rendering flow
- Virtual DOM
- Batch DOM updates
- Browser rendering flow
- Debounce ΠΈ Throttle Π΄Π»Ρ DOM-ΡΠΎΠ±ΡΡΠΈΠΉ
Π€ΠΎΡΠΌΡ ΠΈ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ
- Π Π°Π±ΠΎΡΠ° Ρ ΡΠΎΡΠΌΠ°ΠΌΠΈ ΡΠ΅ΡΠ΅Π· JS
- FormData API
- ΠΠ°ΡΡΠΎΠΌΠ½Π°Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΡΠΎΡΠΌ
- Constraint Validation API
Drag and Drop
π Π‘Π²ΡΠ·Π°Π½Π½ΡΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ
| ΠΠΎΠΌΠ΅Π½ | Π‘Π²ΡΠ·Ρ |
|---|---|
| _MOC JavaScript | Π ΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π΄ΠΎΠΌΠ΅Π½ |
| _MOC HTML | HTML-ΡΡΡΡΠΊΡΡΡΠ° Π΄Π»Ρ DOM |
| _MOC CSS | Π‘ΡΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· DOM |
| _MOC ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ | ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ |
| _MOC ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ | ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ DOM-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ |
| _MOC SPA | Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΈ Virtual DOM |
| _MOC Π Π΅ΡΠ΅ΠΏΡΡ | ΠΠΎΡΠΎΠ²ΡΠ΅ UI-ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° DOM |
π§ ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ
| β¬ Π ΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ MOC | _MOC JavaScript |
| β¬ Π Π³Π»Π°Π²Π½ΠΎΠΉ | πΊοΈ MOC |