溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue插槽slot的使用示例

發(fā)布時間:2021-05-19 14:13:48 來源:億速云 閱讀:141 作者:小新 欄目:web開發(fā)

這篇文章將為大家詳細講解有關vue插槽slot的使用示例,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

vue中插槽的使用非常廣泛,本文就插槽的使用和理解簡單總結。

從字面理解插槽是預先插入一個代碼空間,用于后期塞入數(shù)據(jù)。

插槽分類

匿名插槽     ------------------   匿名的代碼空間

具名插槽     ------------------   帶有命名的代碼空間

作用域插槽 -------------------   帶有數(shù)據(jù)的代碼空間

插槽使用示例

匿名插槽

說明在組件中先定義預留的代碼空間,組件在使用時直接寫入代碼

<template>
 <div class="child">
  <h4>這里是子組件</h4>
  <slot></slot>
 </div>
</template>

使用:

<template>
 <div class="father">
  <h4>這里是父組件</h4>
  <child>
   <div class="tmpl">
    <span>菜單1</span>
    <span>菜單2</span>
    <span>菜單3</span>
    <span>菜單4</span>
    <span>菜單5</span>
    <span>菜單6</span>
   </div>
  </child>
 </div>
</template>

具名插槽

預先在組件中定義一個帶有名稱的代碼空間,使用組件時用:slot綁定名稱

<template>
 <div class="child">
 // 具名插槽
 <slot name="up"></slot>
 <h4>這里是子組件</h4>
 // 具名插槽
 <slot name="down"></slot>
 // 匿名插槽
 <slot></slot>
 </div>
</template>

使用:

<template>
 <div class="father">
 <h4>這里是父組件</h4>
 <child>
  //插槽up
  <div class="tmpl" slot="up">
  <span>菜單1</span>
  <span>菜單2</span>
  <span>菜單3</span>
  <span>菜單4</span>
  <span>菜單5</span>
  <span>菜單6</span>
  </div>
  //插槽down
  <div class="tmpl" slot="down">
  <span>菜單-1</span>
  <span>菜單-2</span>
  <span>菜單-3</span>
  <span>菜單-4</span>
  <span>菜單-5</span>
  <span>菜單-6</span>
  </div>
  //匿名插槽
  <div class="tmpl">
  <span>菜單->1</span>
  <span>菜單->2</span>
  <span>菜單->3</span>
  <span>菜單->4</span>
  <span>菜單->5</span>
  <span>菜單->6</span>
  </div>
 </child>
 </div>
</template>

作用域插槽 (有數(shù)據(jù),但放開了渲染)

在組件中預先定義一個帶有數(shù)據(jù)資源的代碼空間,使用組件時可以直接使用代碼空間中的數(shù)據(jù)

定義

<template>
 <div class="child">
 
 <h4>這里是子組件</h4>
 // 作用域插槽
 <slot :data="data"></slot>
 </div>
</template>
 export default {
 data: function(){
  return {
  data: ['zhangsan','lisi','wanwu','zhaoliu','tianqi','xiaoba']
  }
 }
}

使用

<template>
 <div class="father">
 <h4>這里是父組件</h4>
 <!--第一次使用:用flex展示數(shù)據(jù)-->
 <child>
  <template slot-scope="user">
  <div class="tmpl">
   <span v-for="item in user.data">{{item}}</span>
  </div>
  </template>
 
 </child>
 
 <!--第二次使用:用列表展示數(shù)據(jù)-->
 <child>
  <template slot-scope="user">
  <ul>
   <li v-for="item in user.data">{{item}}</li>
  </ul>
  </template>
 
 </child>
 
 <!--第三次使用:直接顯示數(shù)據(jù)-->
 <child>
  <template slot-scope="user">
  {{user.data}}
  </template>
 
 </child>
 
 <!--第四次使用:不使用其提供的數(shù)據(jù), 作用域插槽退變成匿名插槽-->
 <child>
  我就是模板
 </child>
 </div>
</template>

匿名插槽和具名插槽的功能是 預留插入代碼的空間;

作用域插槽是提供數(shù)據(jù)資源,預留代碼渲染邏輯空間。

關于“vue插槽slot的使用示例”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI