Vue.js - 같은 컴포넌트 레벨 간의 통신

jinny·2021년 9월 8일
0

Vue.js

목록 보기
6/10
post-thumbnail

상위 컴포넌트를 이용

:event를 이용해 상위 컴포넌트로 올리고, props를 이용해 상위 컴포넌트에서 같은 컴포넌트 레벨로 내려주며 통신


    <div id="app">
        <app-header v-bind:propsdata="num"></app-header>
        <app-content v-on:pass="deliverNum"></app-content>
    </div>

    
    <script>
        var appHeader = {
            template: '<div>header</div>',
            props: ['propsdata']
        }
        var appContent = {
            template: '<div>content<button v-on:click="passNum">pass</button></div>',
            methods: {
                passNum: function() {
                    this.$emit('pass', 10);
                }
            }
        }
        new Vue({
            el:'#app',
            components: {
                'app-header': appHeader,
                'app-content': appContent
            },
            data: {
                num: 0
            },
            methods: {
                deliverNum : function(value) {
                    this.num = value;
                }
            }
        });
    </script>

  1. pass 버튼 클릭 시, passNum 메서드 실행 ( event emit 이용)
         →  숫자 '10'을 하위 컴포넌트에서 상위 컴포넌트로 올려준다.

  2. deliverNum을 통해 숫자 '10'이 상위 컴포넌트 num에 할당

  3. props를 이용해 상위 컴포넌트 num에 있는 숫자를 appHeader에 할당

profile
주니어 개발자의 기록

0개의 댓글

관련 채용 정보