-
Notifications
You must be signed in to change notification settings - Fork 8
Custom Element
Custom Element๋ ์น ์ปดํฌ๋ํธ์ 4๊ฐ์ง ํ์ค ์ค ํ๋์ ๋๋ค.
Web Component๋ JavaScript, CSS, HTML๋ค์ ์ปดํฌ๋ํธํํ๊ธฐ ์ํด ํ์ํ 4๊ฐ์ ํ์ค์ ๋ฌถ์ด์ ๋ถ๋ฅด๋ ์ด๋ฆ์ ๋๋ค.
-
์ผ๋ฐ์ ์ธ ๋งํฌ์ ๊ตฌ์กฐ์์ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฌ์ฉํ๊ธฐ ์ด๋ ต์ต๋๋ค. ์ด๋ฐ ๋จ์ ์ ๋ณด์ํ๊ณ ์ Custom Element๋ฅผ ์ฌ์ฉํ์ฌ HTML Element์ JavaScript Class๋ฅผ ํ๋๋ก ๋ง๋ค์ด ์ปดํฌ๋ํธ๋ฅผ ์บก์ํํ์ฌ ์ฝ๊ฒ ์ ์ฉํ ์ ์๊ฒ ํ์ต๋๋ค.
-
ํ๊ทธ์ ์ด๋ฆ์ ์ฌ์ฉ์๊ฐ ์ํ๋๋๋ก ๋ง๋ค ์ ์์ด ์๋ฏธ ์๋ div ํ๊ทธ ๋จ์ฉ์ ์ค์ผ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ํด๋น ํ๊ทธ๊ฐ ์ด๋ค ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋์ง ๋ช ํํ๊ฒ ์ ์ ์์ต๋๋ค.
-
ํน์ ์ง์ ์์ ์คํ๋๋ ์์ฑ์ ๋ด๋ถ์์ ์๋ช ์ฃผ๊ธฐ ์ฝ๋ฐฑ์ ์ ์ํ ์ ์์ต๋๋ค.
- connectedCallback: ์ปค์คํ ์๋ฆฌ๋จผํธ๊ฐ document์ DOM์ ์ฐ๊ฒฐ๋ ๋ ๋ง๋ค ํธ์ถ๋๋ค.
- attributeChangedCallback: ์ปค์คํ ์๋ฆฌ๋จผํธ์ ์ ํธ๋ฆฌ๋ทฐํธ๊ฐ ์ถ๊ฐ, ์์ฑ, ์ญ์ ๊ฐ ๋ ๋ ํธ์ถ์ด ๋๋ค.
- disconnectedCallback: ์ปค์คํ ์๋ฆฌ๋จผํธ๊ฐ document์ DOM์ ์ฐ๊ฒฐ์ด ๋์ด์ก์๋ ํธ์ถ๋๋ค.
- adoptedCallback: ์ปค์คํ ์๋ฆฌ๋จผํธ๊ฐ ์๋ก์ด document๋ก ์ด๋๋ ๋ ํธ์ถ๋๋ค.
- HTMLํ์๊ฐ JS์์ ์ ์ธ๋ Custom Elements๋ฅผ ๋ชจ๋ฅด๋ ์ํฉ์์๋ Custom Elements๊ฐ ๋ ์ง๋ ๋ชจ๋ฅด๋ ํ๊ทธ๋ค์ ๊ตฌ๋ถํ๊ธฐ ์ํด์์ด๋ค.
- HTML ํ์ค์ ์ ์๋์ด ์์ง ์์ผ๋ฉด์ Custom Elements๋ก ์ ์๋์ง ์๋ ํ๊ทธ๋ค์ HTMLUnknownElement ์ธํฐํ์ด์ค๊ฐ ํ ๋น๋๋ค.
- ํ์ง๋ง Custom Elements๋ค์ HTMLElement๋ก๋ถํฐ ์ง์ ์์๋์ด์ผํ๊ธฐ ๋๋ฌธ์ HTMLUnknownElement ์์์ ๋ง๊ธฐ ์ํด์์ด๋ค.
Custom Element๊ฐ DOM์ ์ถ๊ฐ๋๊ฑฐ๋ ์ญ์ ๋ ๋ ์คํ๋๋ค. ์ด๋๋ง๋ค ์ธ์คํด์ค ๊ฐ์ฒด๊ฐ ์ถ๊ฐ, ์ญ์ ๋๋๊ฒ์ ์๋๊ธฐ๋๋ฌธ์ ์ฌ๋ฌ๋ฒ ์ฌ์ฉํด๋๋๋ค. ํ๋ฒ ์์ฑ๋ ๊ฐ์ฒด๋ ์๋์ผ๋ก ํ๊ดด๋์ง ์๊ธฐ ๋๋ฌธ์ ์ธ์คํด์ค ๊ฐ์ฒด๋ฅผ ์ ๋ฆฌํ๋ ์์ ์ ํด์คํ์๊ฐ ์๋ค.
observedAttributes : ๋ชจ๋ํฐ๋ง ํ๊ณ ์ถ์ ์์ฑ๋ค์ ์ด๋ฆ์ ๋์ด ํด์ผํ๋ค.
static get observedAttributes(){
return ['type'];
}
๐ Week1 Meeting Log
๐ Week2 Meeting Log
๐ Week3 Meeting Log
๐ Week4 Meeting Log
๐ Week5 Meeting Log
๐ References
- Official Docs
- Blogs