[Vue.js] 컴포넌트
- 📕 Programing/Vue.js
- 2023. 1. 4. 17:35
📝 컴포넌트
- 컴포넌트(Component)란 조합하여 화면을 구성할 수 있는 블록(화면의 특정 영역)
- 전역 컴포넌트 : 여러 인스턴스에서 공통으로 사용할 수 있다.
- 지역 컴포넌트 : 특정 인스턴스에서만 유효한 범위를 갖는다.
전역 컴포넌트
- 등록방법
Vue.component('컴포넌트이름', {
// 내용
});
- 예제
<div id="app">
<button>컴포넌트 등록</button>
<my-component></my-component>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
Vue.component('my-component', {
template: '<div>전역 컴포넌트가 등록되었습니다.</div>'
});
new Vue({
el: '#app'
})
</script>
- 인스턴스가 화면에 적용되는 과정
- 뷰 라이버리 파일 로딩
- 뷰 생성자로 컴포넌트 등록 Vue.component()
- 인스턴스 객체 생성(옵션 속성 포함)
- 특정 화면ㅇ 요소에 인스턴스 부착
- 인스턴스 내용 변환(등록된 컴포넌트 내용도 변환)
- 변환된 화면 요소를 사용자가 최종 확인
지역 컴포넌트
- 인스턴스에 Components 속성을 추가하고 등록할 때 컴포넌트 이름과 내용을 정의하면 된다.
new Vue({
components: {
'컴포넌트 이름': 컴포넌트 내용
}
})
- 예제
<div id="app"> <button>컴포넌트 등록</button> <my-local-component></my-local-component> </div>
전역과 지역 컴포넌트의 차이점
<div id="app">
<h3>첫 번째 인스턴스</h3>
<my-global-component></my-global-component>
<my-local-component></my-local-component>
</div>
<div id="app2">
<h3>두 번째 인스턴스</h3>
<my-global-component></my-global-component>
<my-local-component></my-local-component>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
//전역 컴포넌트
Vue.component('my-global-component', {
template: '<div>전역 컴포넌트</div>'
});
//지역 컴포넌트
let cmp = {
template: '<div>지역 컴포넌트가 등록되었습니다.!</div>'
}
new Vue({
el: '#app',
//지역 컴포넌트 등록
components: {
'my-local-component': cmp
}
})
new Vue({
el: '#app2'
})
</script>
- 두 번째 인스턴스 영역에 my-local-component가 표시되지 않았다.
'📕 Programing > Vue.js' 카테고리의 다른 글
[Vue.js] 뷰 컴포넌트 통신 (0) | 2023.01.06 |
---|---|
[Vue.js] Reactivity 기초 (0) | 2020.05.17 |
[Vue.js] Vue.js란 무엇인가? (0) | 2020.05.17 |
[Vue.js] vs code 설치 및 추가 플러그인 설치 (0) | 2020.05.17 |