# ๋ทฐ ์ปดํฌ๋ํธ
์ปดํฌ๋ํธ๋ ํ๋ฉด์ ์์ญ์ ๊ตฌ๋ถํ์ฌ ๊ฐ๋ฐํ ์ ์๋ ๋ทฐ์ ๊ธฐ๋ฅ์ ๋๋ค. ์ปดํฌ๋ํธ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉด์ ๊ฐ๋ฐํ๊ฒ ๋๋ฉด ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ด ์ฌ๋ผ๊ฐ๊ณ ๋น ๋ฅด๊ฒ ํ๋ฉด์ ์ ์ํ ์ ์์ต๋๋ค.
# ์ปดํฌ๋ํธ ์์ฑ ์ฝ๋ ํ์
์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๋ ์ฝ๋ ํ์์ ์๋์ ๊ฐ์ต๋๋ค.
Vue.component('์ปดํฌ๋ํธ ์ด๋ฆ', {
// ์ปดํฌ๋ํธ ๋ด์ฉ
});
# ์ปดํฌ๋ํธ ์์ฑ ํ ํ์ํ๊ธฐ
์ ์ฝ๋ ํ์์ ์ฐธ๊ณ ํ์ฌ ๊ฐ๋จํ ์ฑ ํค๋ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
Vue.component('app-header', {
template: '<h1>Header Component</h1>'
});
์์์ ๋ฑ๋กํ ์ปดํฌ๋ํธ๋ฅผ ํ๋ฉด์์ ํ์ํ๋ ค๋ฉด ์๋์ ๊ฐ์ด ์ปดํฌ๋ํธ ํ๊ทธ(์ปดํฌ๋ํธ ์ด๋ฆ)๋ฅผ ์ถ๊ฐํฉ๋๋ค.
<div id="app">
<app-header></app-header>
</div>
div ํ๊ทธ์ ๋ทฐ ์ธ์คํด์ค๊ฐ ์์ฑ๋์ด ์๋ค๋ ๊ฐ์ ํ์ ์ ํ ํ๋ฆฟ ์ฝ๋๋ ๊ฒฐ๊ณผ์ ์ผ๋ก ์๋์ ๊ฐ์ด ํ์๋ฉ๋๋ค.
<div id="app">
<h1>Header Component</h1>
</div>
# ์ปดํฌ๋ํธ ๋ฑ๋ก ๋ฐฉ๋ฒ 2๊ฐ์ง
์ปดํฌ๋ํธ๋ฅผ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ 2๊ฐ์ง๊ฐ ์์ต๋๋ค. ์์์ ์ดํด๋ณธ ๋ฐฉ์์ ์ ์ญ ์ปดํฌ๋ํธ๋ฅผ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
// ์ ์ญ ์ปดํฌ๋ํธ ๋ฑ๋ก
Vue.component('app-header', {
template: '<h1>Header Component</h1>'
});
๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ง์ญ ์ปดํฌ๋ํธ๋ก ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์์์ ์ฌ์ฉํ ์ปดํฌ๋ํธ ๋ด์ฉ์ ๊ฐ์ง๊ณ ๊ทธ๋๋ก ์ง์ญ ์ปดํฌ๋ํธ๋ก ๋ฑ๋กํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
var appHeader = {
template: '<h1>Header Component</h1>'
}
new Vue({
components: {
'app-header': appHeader
}
})
โ Template Components Communication โ