본문 바로가기
Front-End/Vue

[장기효(캡틴판교) - Vue.js 시작하기] 3. 컴포넌트

by hongdor 2021. 1. 23.
728x90

출처 : 인프런의 장기효(캡틴판교)님의 강좌 / Vue.js 시작하기 - Age of Vue.js

 

 

3. 컴포넌트

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <app-header></app-header>
        <app-footer></app-footer>
    </div>
    <div id="app2">
        <app-header></app-header> 
        <app-footer></app-footer>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        // Vue.component('컴포넌트 이름', 컴포넌트 내용); 전역등록
        // 플러그나 라이브러리 등 전역으로 사용해야 하는 것 등록. 어떤 인스턴스든 사용가능하다.
        Vue.component('app-header', {
            template: '<h1>Header</h1>'
        });
        // instance는 root 컴포넌트가 된다. 아래와 같은 방식이 보기 쉽다.
        new Vue({
            el: '#app', // el : div 는 div 태그 전부  자동으로 전역태그로 등록 
            components:{
                // 지역 컴포넌트 등록 방식
                // '컴포넌트 이름' : 컴포넌트 내용
                // 보기 편리하다 상위 하위 구조 보기 유용
                // 지역 컴포넌트는 해당 인스턴스만 사용가능하다.
                'app-footer' : {
                    template : '<footer>footer</footer>'
                }
            }      
        });

        new Vue({
            el: '#app2'            
        })
    </script>
    
</body>
</html>

 

- 전역 컴포넌트 : Vue.component() 함수로 등록 

   > 플로그인, 라이브러리 등에 사용

- 지역 컴포넌트 : Vue 인스턴스를 생성하면서 components 속성에 넣어서 생성. 

   > components 속 template로 치환된다.

- id=app2 인 div에서는 컴포넌트 등록을 안했기 때문에 <app-footer></app-footer>를 사용할 수 없다.

  전역 컴포넌트로 등록한 <app-header></app-header>만 사용가능하다.

728x90

댓글