最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Vue的slot插槽分發(fā)父組件內(nèi)容實現(xiàn)高度復用、更加靈活的組件(推薦)

 更新時間:2018年05月01日 09:49:59   作者:fozero  
這篇文章主要介紹了使用Vue的slot插槽分發(fā)父組件內(nèi)容實現(xiàn)高度復用、更加靈活的組件 ,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

寫在前面

之前寫過一篇關于vue實現(xiàn)dialog會話框組件的文章http://m.fzitv.net/article/139218.htm

 講到了如何實現(xiàn)一個vue對話框組件,其中涉及到了父組件和子組件的通信,這個不用多說,看我之前的文章就能明白,文章最后也說到了,我們可以使用slot插槽來編寫組件,slot用來分發(fā)內(nèi)容到子組件中,從而實現(xiàn)組件的高度復用,編寫的組件更加靈活。

還是結合對話框的例子,使用slot來實現(xiàn)對話框組件

注冊一個名叫dialog-tip的全局組件

 Vue.component('dialog-tip', {
   template: '#dialog-tip',
   props:['dialogShow','message'],
   data:function(){
    return {
     content:''
    }
   },
   methods:{
   }
  });

使用templete標簽來定義這個組件

<template id="dialog-tip">
  <div class="dialog_tip" v-if="dialogShow">
   <div class="dialog_tip--mask"></div>
   <div class="dialog_tip--content">
    <div class="dialog_tip--content__txt">
     <slot name="msg">請輸入1-8000之間任意整數(shù)</slot>
    </div>
    <div class="dialog_tip--content__btns">
     <slot>
      <button class="btn">確定</button>
      <button class="btn">重新輸入</button>
      <button class="btn">去注冊</button>
     </slot>
    </div>
   </div>
  </div>
 </template>

<template id="dialog-tip">
  <div class="dialog_tip" v-if="dialogShow">
   <div class="dialog_tip--mask"></div>
   <div class="dialog_tip--content">
    <div class="dialog_tip--content__txt">
     <slot name="msg">請輸入1-8000之間任意整數(shù)</slot>
    </div>
    <div class="dialog_tip--content__btns">
     <slot>
      <button class="btn">確定</button>
      <button class="btn">重新輸入</button>
      <button class="btn">去注冊</button>
     </slot>
    </div>
   </div>
  </div>
 </template>

組件內(nèi)容包括兩部分 ,一個是提示內(nèi)容,一個是button按鈕,我們將要修改替換的內(nèi)容使用slot包含起來,
 這樣父組件就可以分發(fā)內(nèi)容到子組件里面了。

<div class="dialog_tip--content__txt">
     <slot name="msg">請輸入1-8000之間任意整數(shù)</slot>
    </div>
    <div class="dialog_tip--content__btns">
     <slot>
      <button class="btn">確定</button>
      <button class="btn">重新輸入</button>
      <button class="btn">去注冊</button>
     </slot>
    </div>

除了默認插槽,還可以定義具名插槽 ,如果組件中有好幾個部分內(nèi)容需要替換,我們可以為它定義一個name,例如:

<slot name="msg">請輸入1-8000之間任意整數(shù)</slot>

這樣在使用組件的時候,指定slot的name ,就會將這一部分內(nèi)容替換掉,而不會替換其他的插槽內(nèi)容

<p slot="msg">請輸入正確手機號</p>

使用定義好的dialog組件

<dialog-tip message="hello" :dialog-show="dialogShow.tip3">
   <p slot="msg">請輸入正確手機號</p>
   <button class="btn" @click="closeDialogTip('tip3')">確定</button>
  </dialog-tip>
  <dialog-tip message="hello" :dialog-show="dialogShow.tip4">
   <p slot="msg">抱歉,沒有此用戶,請核實后輸入</p>
   <button class="btn" @click="closeDialogTip('tip4')">重新輸入</button>
   <button class="btn" @click="reg">去注冊</button>
  </dialog-tip>

如果不指定slot的名稱,默認dialog-tip標簽里面的內(nèi)容會替換子組件中使用slot包含的內(nèi)容部分,例如以上

使用slot指定了它的名稱來替換子組件中的對應的slot部分,而沒有使用slot指定名稱的內(nèi)容會默認將子組件中
 沒有定義具名插槽的部分內(nèi)容替換掉。

需要注意的是,如果dialog-tip標簽里沒有定義需要分發(fā)的內(nèi)容,那么子組件中會顯示默認的插槽內(nèi)容

關于更多的slot用法,請移步https://cn.vuejs.org/v2/guide/components-slots.html

最后

效果圖

總結

以上所述是小編給大家介紹的使用Vue的slot插槽分發(fā)父組件內(nèi)容實現(xiàn)高度復用、更加靈活的組件,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

相關文章

  • 解決vue3+vite配置unplugin-vue-component找不到Vant組件

    解決vue3+vite配置unplugin-vue-component找不到Vant組件

    這篇文章主要為大家介紹了vue3+vite配置unplugin-vue-component找不到Vant組件問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • 使用element-ui +Vue 解決 table 里包含表單驗證的問題

    使用element-ui +Vue 解決 table 里包含表單驗證的問題

    這篇文章主要介紹了使用element-ui +Vue 解決 table 里包含表單驗證的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue中,在本地緩存中讀寫數(shù)據(jù)的方法

    vue中,在本地緩存中讀寫數(shù)據(jù)的方法

    今天小編就為大家分享一篇vue中,在本地緩存中讀寫數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 圖文詳解如何在vue3+vite項目中使用svg

    圖文詳解如何在vue3+vite項目中使用svg

    SVG指可伸縮矢量圖形,用來定義用于網(wǎng)絡的基于矢量的圖形,下面這篇文章主要給大家介紹了關于如何在vue3+vite項目中使用svg的相關資料,需要的朋友可以參考下
    2021-11-11
  • Vue腳手架的簡單使用實例

    Vue腳手架的簡單使用實例

    這篇文章主要介紹了Vue腳手架的簡單使用實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 關于vue 結合原生js 解決echarts resize問題

    關于vue 結合原生js 解決echarts resize問題

    這篇文章主要介紹了關于vue 結合原生js 解決echarts resize問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 教你在vue項目中使用svg圖標的方法

    教你在vue項目中使用svg圖標的方法

    本文給大家介紹了在vue項目中使用svg圖標的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2022-04-04
  • vue如何設置動態(tài)的柵格占位、水平偏移量、類名、樣式

    vue如何設置動態(tài)的柵格占位、水平偏移量、類名、樣式

    這篇文章主要介紹了vue如何設置動態(tài)的柵格占位、水平偏移量、類名、樣式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue+element-ui實現(xiàn)主題切換功能

    vue+element-ui實現(xiàn)主題切換功能

    這篇文章主要介紹了vue+element-ui實現(xiàn)主題切換功能,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • vue路由緩存的幾種實現(xiàn)方式小結

    vue路由緩存的幾種實現(xiàn)方式小結

    這篇文章主要介紹了vue路由緩存的幾種實現(xiàn)方式,結合實例形式詳細分析了vue.js路由緩存常見實現(xiàn)方式、使用技巧與操作注意事項,需要的朋友可以參考下
    2020-02-02

最新評論

周至县| 平潭县| 庆城县| 沅江市| 双牌县| 潜山县| 手游| 盈江县| 腾冲县| 青神县| 内江市| 晋江市| 嘉峪关市| 班玛县| 屏山县| 礼泉县| 伽师县| 莆田市| 苍溪县| 德令哈市| 清徐县| 东港市| 永泰县| 和林格尔县| 于都县| 玉山县| 珠海市| 淮阳县| 武山县| 乌海市| 玛多县| 公安县| 永定县| 当涂县| 泽州县| 林芝县| 克什克腾旗| 辽源市| 澜沧| 浦江县| 大名县|