Vue.js์์ ์์(๋ถ๋ชจ)์ปดํฌ๋ํธ์์ ํ์(์์) ์ปดํฌ๋ํธ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ์ฌ์ฉํ๋ ์์ฑ
const appHeader = {
template: '<h1>Header</h1>',
props: ['propsdata']
}
new Vue({
el: '#app',
components: {
'app-header': appHeader,
},
//์ ๋ฌํ๋ ค๋ ๋ฐ์ดํฐ
data: {
message: '๋ถ๋ชจ ์ปดํฌ๋ํธ์ ๋ฉ์์ง',
name: '์์ด์ธ๋งจ',
}
})
<div id="app">
<!-- v-bind:ํ๋กญ์ค ์์ฑ๋ช
="์์ ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ๋ช
" -->
<app-header v-bind:propsdata="message"></app-header>
</div>
๊ฒฐ๊ณผ
data ํค๊ฐ ๋ณ๊ฒฝ ์ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๊ฐ ์์ ์ปดํฌ๋ํธ์๋ ํ์๋จ
<div id="app">
<!-- v-bind:ํ๋กญ์ค ์์ฑ๋ช
="์์ ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ๋ช
" -->
<app-header v-bind:propsdata="name"></app-header>
</div>
Root ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ ์ props๋ก ๋ด๋ ค๋ฐ์ ์์ ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ์๋ ์ ์ฉ๋จ(reactivity)
ํ์ ์ปดํฌ๋ํธ ์ถ๊ฐ ํ ์๋ก์ด props ์ ๋ฌ
//appContent๋ผ๋ ํ์ ์ปดํฌ๋ํธ ๋ด์ฉ, props ์ถ๊ฐ
let appContent = {
template: '<div>{{ propsdata }}</div>',
props: ['propsdata']
}
new Vue({
el: '#app',
//์ง์ญ ์ปดํฌ๋ํธ ๋ฑ๋ก
components: {
'app-header': appHeader,
//Root ์ปดํฌ๋ํธ์ ํ์ ์ปดํฌ๋ํธ์ ์ถ๊ฐ
'app-content': appContent,
},
//๋ฐ์ดํฐ ์ธํ
data: {
//Root ์ปดํฌ๋ํธ์ data์ num์ด๋ผ๋ ์์ฑ ์ถ๊ฐ
message: 'thor!!!',
num: 10
}
})
<div id="app">
<app-header v-bind:propsdata="message"></app-header>
<!-- ์๋ก ์ถ๊ฐํ app-content ์ปดํฌ๋ํธ ์ถ๊ฐ ํ propsdata์ ๋ฐ์ธ๋ฉ ํ data๋ num์์ฑ ์ฐ๊ฒฐ -->
<app-content v-bind:propsdata="num"></app-content>
</div>
โป ์ปดํฌ๋ํธ ๋ผ๋ฆฌ๋ ๋ฐ์ดํฐ ์์ญ์ด ๋ ๋ฆญ์ ์ด๊ธฐ ๋๋ฌธ์ ์ ๋ฌํ๋ props์ ๊ฐ์ ๊ฐ์๋ ์๊ด ์์
reference: https://www.inflearn.com/course/age-of-vuejs/dashboard
Vue.js ์์ํ๊ธฐ - Age of Vue.js - ์ธํ๋ฐ | ๊ฐ์
Vue.js๋ก ์ฝ๊ฒ ์น ๊ฐ๋ฐํ ์ ์๋๋ก ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ํต์ฌ ๊ธฐ๋ฅ์ ๋ํด์ ํ์ตํ๊ณ ๊ตฌํํด๋ด ๋๋ค. ๊ฐ์ข๋ฅผ ๋ค์ผ์๊ณ ๋๋ฉด Vue.js๋ก ํ๋ฐํธ์๋ ๊ฐ๋ฐ์ ํ์๋๊ฒ ์ฌ๋ฐ์ด์ง๊ฑฐ์์., [์ฌ์ง] Vue.js ์์ํ๊ธฐ,Ag
www.inflearn.com
'IT > development' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Vue.js] ajax api ํธ์ถ(feat. axios) (0) | 2023.07.27 |
---|---|
[Vue.js] event emit(์์ โ ๋ถ๋ชจ) (0) | 2023.07.26 |
[Vue.js] ์ปดํฌ๋ํธ(์ฌ์ฌ์ฉ ์ ์ฉ) (0) | 2023.07.26 |
[Vue.js] ์ธ์คํด์ค์ ์์ฑ์ (0) | 2023.07.26 |
[Vue.js] ์ปดํฌ๋ํธ๋ผ๋ฆฌ์ ๋ฐ์ดํฐ ์ ๋ฌ(feat. props, event emit) (0) | 2023.07.26 |
๋๊ธ