slot 초간단 활용 (name 속성 활용)

 

slot

특정한 컴포넌트의 일부 UI를 재사용하는 것.

 

slot을 활용한다는 건 간단하게 말해서 …

자식에서 slot을 정의,

부모에서 slot을 삽입!

 

 

만들면서 이해해보자

// 하위 컴포넌트
<template>
  <div>슬롯컴포넌트
    <slot name="A">
      <!-- 상위 컴포넌트에서 정의할 영역 -->
    </slot>
    <slot name="B">
      <!-- 상위 컴포넌트에서 정의할 영역 -->
    </slot>
    <slot name="empty">
      <!-- 상위 컴포넌트에서 정의할 영역 -->
      정의되지않음
    </slot>
  </div>
</template>

<script>
export default {
}
</script>

 

하위 컴포넌트에서는 각각 A, B, empty 라는 name의 slot을 정의하였고

현재는 아무것도 없는 텅텅 빈 상태

 

// 상위 컴포넌트
<template>
  <div>
    <SlotComponent>
      <template slot="A">
        <div>A</div>
      </template>
      <!-- slotRouterTest라는 slot을 정의 -->
      <router-link slot="B" :to="`/`">
        B로 이동
      </router-link>
    </SlotComponent>
  </div>
</template>

<script>
import SlotComponent from '../components/SlotComponent.vue'
export default {
  components: {
    SlotComponent,
  }
}
</script>

 

그리고 부모 컴포넌트에서 slot 속성에 name을 지정하여

해당 name에 맞는 slot에 각각 삽입하면 끝

 

template과 rotuer-link를 삽입하였다.

컴포넌트 삽입도 가능하다.

 

 

'🧠 저장 > Vue' 카테고리의 다른 글

하이오더컴포넌트(HOC) 간단 정리  (0) 2024.01.03
eventBus 간단 정리  (0) 2023.12.31
공통 컴포넌트 간단 활용  (0) 2023.12.25
Helper 간단 정리 (vuex를 더 편하게!)  (0) 2023.12.22
vuex 활용 비교  (0) 2023.12.19