Component (컴포넌트)

Component란 화면을 구성할 수 있는 블록을 의미합니다.
Component를 구조화하여 여러 영역으로 쪼개서 사용할 수 있습니다.
하나의 사이트를 예로 들면 header,footer,content,aside등의 Component로 나눠서 사용이 가능합니다.
또한 Component는 전역과 지역 Component로 나눠져 있습니다.

전역 Component

<div id="app">
    <button>전역 컴포넌트 등록</button>
    <my-component></my-component>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.15/dist/vue.min.js"></script>
<script>
    Vue.component('my-component',{
        template : '<div>전역 컴포넌트가 등록되었습니다!</div>'
    });

    new Vue({
        el : '#app'
    });
</script>

전역 Component는 Vue.component()를 호출하여 수행합니다.

지역 Component

지역 Component는 Instance에 components 속성을 추가하여 등록합니다.

<div id="app">
    <button>지역 컴포넌트 등록</button>
    <my-local-component></my-local-component>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.15/dist/vue.min.js"></script>
<script>
    var cmp = {
        tempalte : '<div>지역 컴포넌트가 등록되었습니다!</div>'
    }

    new Vue({
        el : '#app',
        components : {
            'my-local-component' : cmp
        }
    });
</script>

전역 Component와 지역 Component

<div id="app">
    <button>컴포넌트 등록</button>
    <my-global-component></my-global-component>
    <my-local-component></my-local-component>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.15/dist/vue.min.js"></script>
<script>
    Vue.component('my-global-component',{
        template : '<div>전역 컴포넌트입니다.</div>'
    });

    var cmp = {
        tempalte : '<div>지역 컴포넌트입니다.</div>'
    }

    new Vue({
        el : '#app',
        components : {
            'my-local-component' : cmp
        }
    });
</script>