vue關(guān)于插槽的知識(shí)

一、基本使用

子組件 childComponent.vue

<template>
    <div>
      <slot name="isscope" :data="data" />
    </div>
</template>
<script>
export default {
  name: 'childComponent',
   ... ...
}
</script>

父組件 parentComponent.vue

<template>
  <childComponent>
    // 寫法一:通過(guò)slot-scope來(lái)獲取子組建的值
    <span slot="isscope" slot-scope="item">
        父組件拿值{{item}}
    </span>
    // 寫法二:# 等價(jià)于 v-slot,#isscope => v-slot:isscope, #isscope="子組件值" => v-slot:isscope="子組件值"
    <template #isscope="item">
        父組件拿值{{item}}
    </template> 
  </childComponent>
</template>
<script>
export default {
  name: 'parentComponent',
   ... ...
}
</script>

二、v-slot指令動(dòng)態(tài)綁定屬性

子組件 childComponent.vue

<template>
    <div>
      <slot name="test1" :data="data" />
      <slot name="test2" :data="data" />
      <slot :data="data" />
    </div>
</template>
<script>
export default {
  name: 'childComponent',
   ... ...
}
</script>
2.1、父組件,單個(gè)變量名使用
<template>
  <childComponent>
    <template v-slot:[slotName]>
        父組件
    </template>
  </childComponent>
</template>
<script>
export default {
  name: 'parentComponent',
  data() {
    return {
      slotName: 'test1'
    }
  }
}
</script>
2.2、父組件,循環(huán)變量名使用
<template>
  <childComponent>
    <template v-for="(name, index) in slotNames" v-slot:[name]="item">
          <div :key="index">
              父組件拿值{{item}}
          </div>
      </template>
  </childComponent>
</template>
<script>
export default {
  name: 'parentComponent',
  data() {
    return {
      slotNames: [ 'test1', 'test2', 'default']
    }
  }
}
</script>

三、組件套組件插槽使用

子組件 childComponent.vue

<template>
    <div>
      <slot name="test1" :data="data" />
      <slot name="test2" :data="data" />
      <slot :data="data" />
    </div>
</template>

父組件 parentComponent.vue

<template>
  <childComponent>
    <template v-for="(name, index) in slotNames" v-slot:[name]="item">
          <div :key="index">
              父組件拿值{{item}}
          </div>
      </template>
  </childComponent>
</template>
<script>
export default {
  name: 'parentComponent',
  data() {
    return {
      slotName:  [ 'test1', 'test2', 'default']
    }
  }
}
</script>

爺爺組件 grandpaComponent.vue

<template>
  <parentComponent>
      // 方法一
      <span slot="test1" slot-scope="item">
          爺爺組件拿值{{item}}
      </span>
    // 方法二
    <template #test1="item">
        爺爺組件拿值{{item}}
      </template> 
  </parentComponent>
</template>
<script>
export default {
  name: 'grandpaComponent',
  ... ...
}
</script>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Vue 實(shí)現(xiàn)了一套內(nèi)容分發(fā)的 API,由 元素作為承載分發(fā)內(nèi)容的出口。 slot 首先說(shuō)說(shuō)slot vue里提...
    前端輝羽閱讀 956評(píng)論 0 8
  • 1. 什么是插槽 插槽(Slot)是vue為組件的封裝者提供的能力。允許開(kāi)發(fā)者在封裝組件時(shí),把不確定、希望由用戶指...
    咸魚不咸_123閱讀 3,576評(píng)論 2 18
  • 1. 具名插槽 1.1 沒(méi)有使用具名插槽的問(wèn)題 有的時(shí)候我們?cè)谑褂米咏M件時(shí),在子組件模板上不同的位置插入不同的內(nèi)容...
    時(shí)光如劍閱讀 1,924評(píng)論 0 27
  • vue的插槽用法,官方文檔寫的內(nèi)容個(gè)人感覺(jué)有點(diǎn)亂,不自己梳理一下的話,使用的時(shí)候也容易懵逼,下面是我對(duì)vue插槽使...
    Modulante閱讀 1,195評(píng)論 0 2
  • 什么是插槽? 插槽(Slot)是vue為組建的封裝者提供的能力,允許開(kāi)發(fā)者在封裝組件時(shí),把不確定的、希望由用戶指定...
    沃德麻鴨閱讀 1,787評(píng)論 0 0

友情鏈接更多精彩內(nèi)容