티스토리 뷰

dev/vue3

props 속성

dev_0hoon 2025. 1. 4. 18:28
<div id="app">
    <!-- 컴포넌트 표시 -->
    <app-header v-bind:프롭스이름="상위컴포넌트의 데이터이름"></app-header>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
    Vue.createApp({
        data() {
            return {
                appTitle: '프롭시 넘기기'
            }
        },
        //인스턴스 옵션 속성 - 옵션
        components: {
            // '컴포넌트 이름' : 컴포넌트 내용
            'app-header' : {
                template: '<h1>컴포넌트 등록</h1>',
                props: ['title']
            }
        }
    }).mount('#app');
</script>

1) 상위 컴포넌트에서 하위컴포넌트로 데이터를 내려보낼 떄 사용하는 것은 props이다.

- 정확히는 컴포넌트 간에 데이터를 전달할 수 있는 컴포넌트 통신 방법이다.

 

먼저 컴포넌트 안에 template와 같은 레벨에 props를 작성해 준다.

- template : 그릴 화면

- props: 상위에서 받은 매개변수 

정도로 생각해면 될 것 같다.

<div id="app">
    <!-- 컴포넌트 표시 -->
    <app-header v-bind:title="appTitle"></app-header>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
    Vue.createApp({
        data() {
            return {
                appTitle: '프롭스 넘기기'
            }
        },
        //인스턴스 옵션 속성 - 옵션
        components: {
            // '컴포넌트 이름' : 컴포넌트 내용
            'app-header' : {
                template: '<h1>{{title}}</h1>',
                props: ['title']
            }
        }
    }).mount('#app');
</script>

 

디렉티브 v-bind를 이용해서 :props 즉 연결할 props의 이름을 적용해주고 그 값을 ="appTitle"로 담아준다. #app 내부의 데이터를 보내주고 있는 것이다.

 

그리고 확인해보면 

1) Vue.createApp() 인스턴스를 생성하며 내부에 components에 props로 값을 보내주며 그 값을 template 내에서 사용할 수 있게 된다.

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함