본문 바로가기
Front-end/Vue.js

Instance / Component

by bloodFinger 2019. 12. 26.

 

사실 인스턴스라는 이야기는 객체지향 공부를 하면서 많이 듣고 알고있는 내용이다.

근데 vue에서의 insttace 와 자바스크립트의 instance 의 내용은 똑같다고 보면 된다!..

 

 # Instance

new Vue();

 

console창에 Vue라는 인스턴스를 만들게 되면 미리 정의되어 있는 속성과 메소드 (API)

가 있기 때문에 이 기능들을 이용해서 빠르게 개발이 가능합니다!

 

 

인스턴스에서 사용할 수 있는 속성과 API는 다음과 같습니다.

new Vue({

	el : ,
    template : ,
    data : ,
    methods : , 
    created : ,
    watch : ,
	....
});
  • el : 인스턴스가 그려지는 화면의 시작점 (특정 HTML 태그)
  • template : 화면에 표시할 요소 (HTML, CSS 등)
  • data : 뷰의 반응성(Reactivity)가 반영된 데이터 속성
  • methods : 화면의 동작과 이벤트 로직을 제어하는 메서드
  • created : 뷰의 라이프 사이클과 관련된 속성
  • watch : data에서 정의한 속성이 변화했을 때 추가 동작을 수행할 수 있게 정의하는 속성

 

자주사용 하는 속성에 대해서만 썻고 추후에 계속에서 소개하겠습니다~~!

 

 

# Component

컴포넌트의 뜻은 구성요소라는 뜻으로 알고 있다.  즉 화면 영역을 구분하여 개발 할 수 있다는 의미이다.

React도 이런 방식으로 개발이 된다.

왜 컴포넌트 기반으로 개발을 하냐면 코드의 재활용성과 빠르게 화면을 제작하기 위해서 최근 프레임워크들은 

이런식으로 개발한다고 한다!

 

컴포넌트 생성

Vue.component('컴포넌트 이름', {
  // 컴포넌트 내용
});

 

 

커스텀한 태그 사용

<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>
    //전역 컴포넌트 등록
    Vue.component('app-header' , {
        template : '<h1> first Component </h1>',
    });


    new Vue({
        el : '#app',
        //지역 컴포넌트 등록
        components : {
            'app-footer' : {
                template : '<div>footer</div>'
            }
        }
    });

    new Vue({
        el : '#app2',
        
    })
   

</script>

 

결과

 

인스턴스를 생성할때마다 지역 컴포넌트는 계속해서 만들어줘야 한다. 

반면에 전역 컴포넌트는 만들어져 있기 때문에 가져다 사용하면 된다.

'Front-end > Vue.js' 카테고리의 다른 글

Vue Router ?  (0) 2020.01.02
props / event Emit (2)  (0) 2019.12.30
props / event Emit  (0) 2019.12.29
컴포넌트 통신 이란 ?  (0) 2019.12.27
Vue  (0) 2019.12.26