본문 바로가기
Frontend/Vue 2

vue3 slot

by SOLYI 2021. 10. 19.
//App.vue

<template>
  <!-- @이름은 뭐든 상관없다! -->
  <MyBtn>      
    <template #text>
      <span>Banana</span>
    </template>
    <template #icon>
      <span>(B)</span>
    </template>
    <!-- 여기서 txt,icon 순서여도
    MyBtn.vue에서 icon-txt 순서이므로
    실제로 icon-txt 순으로 출력된다. -->
  </MyBtn>
</template>

<script>
import MyBtn from '~/components/MyBtn'
export default {
  components:{
    MyBtn
  },
}

// v-bind => :
// v-on   => @
// v-slot => #
</script>

 

//MyBtn.vue

<template>
  <div class="btn">
    <!-- <slot>apple</slot> -->
    <!-- App.vue의 MyBtn  내부에 값이 있으면 apple은 출력되지않음
    <MyBtun /> 으로 닫혀있으면 apple 출력-->

    <slot name="icon"></slot>
    <slot name="text"></slot>
  </div>
</template>

<script>
export default {
 
}
</script>

<style scoped>
  .btn{
    display: inline-block;
    margin: 4px;
    padding:6px 12px;
    border-radius: 4px;
    background-color:grey;
    color: white;
    cursor: pointer;  
  }
</style>
반응형

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

vue3 ref  (0) 2021.10.19
vue3 provide, inject  (0) 2021.10.19
vue3 component emit  (0) 2021.10.19
vue3 component 속성 상속  (0) 2021.10.19
vue3 Componunts  (0) 2021.10.19