[Vue.js] 단일 파일 컴포넌트 - 스타일, 슬롯, provide-inject, 텔레포트

2025. 3. 26. 11:46Frontend/Vue


<style scoped> : 컴포넌트가 렌더링하는 요소에 대해 충돌 회피
<style module> : 모듈화, 객체화. 반드시 v-bind를 사용해서 연결


슬롯

  • 부모 컴포넌트와 자식 컴포넌트 사이의 정보 교환 방법 -> props, 이벤트
  • 부모 컴포넌트에서 자식 컴포넌트로 템플릿 정보를 전달하는 방법 -> 슬롯

명명된 슬롯

  • 화면 레아아웃 관리 목적으로 각 영역에 이름을 배정

범위 슬롯

  • 부모 컴포넌트에서 템플릿에 데이터를 바인딩할 때 자식 컴포넌트의 데이터로 바인딩하는 경우
  • 전달된 데이터는 슬롯 템플릿 내부 범위에서만 사용

동적 컴포넌트

  • 화면의 동일한 위치에 여러 컴포넌트를 표현해야하는 경우에 사용
  • <component> 요소를 템플릿에 작성

provide, inject

  • 컴포넌트의 계층 구조가 복잡해지면 계층 구조를 따라 연속적으로 속성을 전달해야하는 문제 발생
  • 공용 데이터를 부모 컴포넌트(App)에서 제공(provide), 어느 컴포넌트에서나 필요한 데이터를 주입(inject)해서 사용

img


텔레포트

  • 메인 화면과 독립적이면서 공유 UI를 제공하는 경우
  • 부모가 자식의 렌더링 제어, 계층 구조와 관계 없이 별도의 요소에 렌더링

참고자료:

'Frontend > Vue' 카테고리의 다른 글

[Vue.js] axios를 사용한 HTTP 통신, CORS  (0) 2025.04.02
[Vue.js] Composition API  (0) 2025.03.27
[Bootstrap]  (0) 2025.03.21
[Vue.js] 이벤트 처리  (0) 2025.03.20
[Vue.js] 인스턴스  (1) 2025.03.20