欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

寫在前面

之前寫過一篇關(guān)于vue實(shí)現(xiàn)dialog會(huì)話框組件的文章http://www.dbjr.com.cn/article/139218.htm

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

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

注冊一個(gè)名叫dialog-tip的全局組件

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

使用templete標(biāo)簽來定義這個(gè)組件

<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)容包括兩部分 ,一個(gè)是提示內(nèi)容,一個(gè)是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>

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

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

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

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

使用定義好的dialog組件

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

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

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

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

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

最后

效果圖

總結(jié)

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

相關(guān)文章

  • 淺談Vue服務(wù)端渲染框架Nuxt的那些事

    淺談Vue服務(wù)端渲染框架Nuxt的那些事

    這篇文章主要介紹了淺談Vue服務(wù)端渲染框架Nuxt的那些事,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • vue實(shí)現(xiàn)移動(dòng)端輕量日期組件不依賴第三方庫的方法

    vue實(shí)現(xiàn)移動(dòng)端輕量日期組件不依賴第三方庫的方法

    這篇文章主要介紹了vue 移動(dòng)端輕量日期組件不依賴第三方庫,需要的朋友可以參考下
    2019-04-04
  • Vue?ELement?Table技巧表格業(yè)務(wù)需求實(shí)戰(zhàn)示例

    Vue?ELement?Table技巧表格業(yè)務(wù)需求實(shí)戰(zhàn)示例

    這篇文章主要介紹了Vue?ELement?Table技巧表格業(yè)務(wù)需求實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 詳解vue中router-link標(biāo)簽所必備了解的屬性

    詳解vue中router-link標(biāo)簽所必備了解的屬性

    這篇文章主要介紹了vue中router-link標(biāo)簽所必備了解的屬性,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 解決vue多層彈框時(shí)存在遮擋問題

    解決vue多層彈框時(shí)存在遮擋問題

    本文給大家介紹vue多層彈框時(shí)存在遮擋問題,解決思路首先想到的是找到對應(yīng)的遮擋層的css標(biāo)簽,然后修改z-index值,但是本思路只能解決首次問題,再次打開還會(huì)存在相同的問題,故該思路錯(cuò)誤,下面給大家?guī)硪环N正確的思路,一起看看吧
    2022-03-03
  • Vue IP地址輸入框?qū)嵗a

    Vue IP地址輸入框?qū)嵗a

    本文通過實(shí)例代碼給大家介紹Vue IP地址輸入框?qū)崿F(xiàn),代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-10-10
  • vue 百度地圖(vue-baidu-map)繪制方向箭頭折線實(shí)例代碼詳解

    vue 百度地圖(vue-baidu-map)繪制方向箭頭折線實(shí)例代碼詳解

    這篇文章主要介紹了vue 百度地圖(vue-baidu-map)繪制方向箭頭折線,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Vue實(shí)現(xiàn)省市區(qū)三級聯(lián)動(dòng)

    Vue實(shí)現(xiàn)省市區(qū)三級聯(lián)動(dòng)

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)省市區(qū)三級聯(lián)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • vue使用keep-alive無效以及include和exclude用法解讀

    vue使用keep-alive無效以及include和exclude用法解讀

    這篇文章主要介紹了vue使用keep-alive無效以及include和exclude用法解讀,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Vue-cli3多頁面配置詳解

    Vue-cli3多頁面配置詳解

    這篇文章主要介紹了Vue-cli3多頁面配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03

最新評論