vue.js 지역 컴포넌트를 만들어보자.

 

-화면에 비춰지는 뷰의 단위를 쪼개어 재활용이 가능한 형태로 관리하기 위하여 Component로 제작한다.

-Vue 문법 특성 상 최상위 루트 태그가 1개여야만 렌더가 가능하다.

-Component는 지역(Local)과 전역(Global)로 나눌 수 있다.

출처:vue공식사이트

 

자 문법을 몰라도 컴포넌트 만들어 봅시다.

 

일단 new Vue ({   }); 가 뭘까요? https://kr.vuejs.org/v2/guide/instance.html

var vm = new Vue({

    // options .... (template, el, methods, created, watch.. 등등)

});

Vue 인스턴스 입니다.

인스턴스란?

설계도를 바탕으로 소프르웨어 세계에 구현된 구체적인 실체

-즉, 객체를 소프트웨어에 실체화하면 그것을 인스턴스라 함

-실체화된 인스턴스는 메모리에 할당됨.

-객체에 포함된다고 볼 수 있다.

 

실체 실체 객체 그러죠? 메모리에 할당되는 객체?로 알면될까요??

 

모든 Vue 앱은 이 인스턴스로 부터 시작됩니다^^ 가이드 한 번만 읽고 오세용 (솔직히 읽어도 잘 모르겠다)

<body>

  <div id="app"></div> // 1.

</body>

<script>

var cmp = { // 2.

    template : '<div>my component</div>';

};

 

new Vue({

    el : '#app', // 1.

    components : { // 3.

        'my-cmp' : cmp // 4.

    }

});

</script>

과정을 풀어보자면...

1. <div> id가 app이고, 나는 #app 영역에 vue의 모든 문법을 쓸거고, 컴포넌트도 만들거다.

그러니까 그 #app을 new Vue({ }) 안에 el로 선언해야합니다.

2. 그리고 컴포넌트를 넣어야 하니까 컴포넌트를 먼저 변수로 선언합니다.

template : 해서 선언해줍니다.

3. cmp를 #app에서 사용하기 위해 vue에 등록해줄겁니다. 그러기 위해서 영역을 만듭니다.

4. cmp변수를 html에 넣기위해 components : {   } 라고 작성했던 내부에 넣어줍니다.

여기서 'my-cmp' 는 html에 <my-cmp>로 사용이 되는 이름이고, cmp는 template를 만들어줬던 변수이름입니다!

 

결과는  

예제내용
html결과


위의 예제로 봤을 때 ..

컴포넌트를 넣을 영역은 el로 선언

html에 내용을 넣을 것을 js 변수로 선언(cmp)

js변수를 html에서 컴포넌트로 쓰려면 components에 선언

 

저기서 my-cmp는 #app 내부면 얼마든지 계속 쓸 수 있어요~

 

+ Recent posts