IT/development

[Vue.js] Props(๋ถ€๋ชจ -> ์ž์‹)

์•Œ ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž 2023. 7. 26.

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

๋Œ“๊ธ€