首頁 web前端 js教程 如何利用Vue中slot插槽分發父元件

如何利用Vue中slot插槽分發父元件

Jun 01, 2018 pm 01:48 PM
slot 散佈 插槽

這次帶給大家如何利用Vue中slot插槽分發父元件,利用Vue中slot插槽分發父元件的注意事項有哪些,以下就是實戰案例,一起來看一下。

寫在前面

之前寫過一篇關於vue實作dialog會話方塊元件的文章http://www.jb51.net /article/139218.htm

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

還是結合對話框的例子,使用slot來實作對話方塊元件

註冊一個名叫dialog-tip的全域元件

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

使用templete標籤來定義這個元件

<template id="dialog-tip">
  <p class="dialog_tip" v-if="dialogShow">
   <p class="dialog_tip--mask"></p>
   <p class="dialog_tip--content">
    <p class="dialog_tip--contenttxt">
     <slot name="msg">请输入1-8000之间任意整数</slot>
    </p>
    <p class="dialog_tip--contentbtns">
     <slot>
      <button class="btn">确定</button>
      <button class="btn">重新输入</button>
      <button class="btn">去注册</button>
     </slot>
    </p>
   </p>
  </p>
 </template>
<template id="dialog-tip">
  <p class="dialog_tip" v-if="dialogShow">
   <p class="dialog_tip--mask"></p>
   <p class="dialog_tip--content">
    <p class="dialog_tip--contenttxt">
     <slot name="msg">请输入1-8000之间任意整数</slot>
    </p>
    <p class="dialog_tip--contentbtns">
     <slot>
      <button class="btn">确定</button>
      <button class="btn">重新输入</button>
      <button class="btn">去注册</button>
     </slot>
    </p>
   </p>
  </p>
 </template>
登入後複製

元件內容包含兩個部分,一個是提示內容,一個是button按鈕,我們將要修改替換的內容使用slot包含起來,
 這樣父元件就可以分發內容到子元件裡面了。

<p class="dialog_tip--contenttxt">
     <slot name="msg">请输入1-8000之间任意整数</slot>
    </p>
    <p class="dialog_tip--contentbtns">
     <slot>
      <button class="btn">确定</button>
      <button class="btn">重新输入</button>
      <button class="btn">去注册</button>
     </slot>
    </p>
登入後複製

除了預設插槽,還可以定義具名插槽,如果元件中有好幾個部分內容需要替換,我們可以為它定義一個name,例如:

&lt ;slot name="msg">請輸入1-8000之間任意整數</slot>

這樣在使用元件的時候,指定slot的name ,就會將這部分內容替換掉,而不會替換其他的插槽內容

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

使用定義好的dialog元件

<dialog-tip message="hello" :dialog-show="dialogShow.tip3">
   <p slot="msg">请输入正确手机号</p>
   <button class="btn" @click="closeDialogTip(&#39;tip3&#39;)">确定</button>
  </dialog-tip>
  <dialog-tip message="hello" :dialog-show="dialogShow.tip4">
   <p slot="msg">抱歉,没有此用户,请核实后输入</p>
   <button class="btn" @click="closeDialogTip(&#39;tip4&#39;)">重新输入</button>
   <button class="btn" @click="reg">去注册</button>
  </dialog-tip>
登入後複製

如果不指定slot的名稱,預設dialog-tip標籤裡面的內容會取代子元件中使用slot包含的內容部分,例如以上

使用slot指定了它的名稱來取代子元件中的對應的slot部分,而沒有使用slot指定名稱的內容會預設將子元件中
 沒有定義具名插槽的部分內容替換掉。

要注意的是,如果dialog-tip標籤裡沒有定義需要分發的內容,那麼子元件中會顯示預設的插槽內容

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

最後

##效果圖

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

Vue.js內偵聽器使用案例解析

如何使用Vue SSR 元件載入

以上是如何利用Vue中slot插槽分發父元件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Vue中如何使用v-slot預設插槽 Vue中如何使用v-slot預設插槽 Jun 11, 2023 am 09:27 AM

Vue是一款流行的前端框架,它提供了眾多的指令幫助我們更好的進行開發。其中,v-slot是一個非常重要的指令,它可以讓我們更有彈性地組合元件,提升程式碼的可讀性和重複使用性。預設插槽是v-slot中的一種插槽類型,使用預設插槽可以將父元件中的HTML結構傳遞到子元件中,讓子元件可以將其作為自己的子元素渲染。本文將向大家詳細介紹Vue中如何使用v-

Python 程式碼變身獨立應用:PyInstaller 的煉金術 Python 程式碼變身獨立應用:PyInstaller 的煉金術 Feb 19, 2024 pm 01:27 PM

PyInstaller是一個開源程式庫,允許開發者將python程式碼編譯為平台無關的自包含可執行檔(.exe或.app)。它透過將Python程式碼、依賴項和支援檔案打包在一起來實現這一目標,從而創建獨立應用程序,無需安裝Python解釋器即可運行。 PyInstaller的優點在於它消除了對Python環境的依賴性,使應用程式可以輕鬆分發和部署給最終用戶。它還提供了建構器模式,使用戶可以自訂應用程式的設定、圖示、資源檔案和環境變數。使用PyInstaller打包Python程式碼安裝PyInstal

Python 應用的終極進化:PyInstaller 的破繭成蝶 Python 應用的終極進化:PyInstaller 的破繭成蝶 Feb 19, 2024 pm 03:27 PM

PyInstaller是一個革命性的工具,它賦予python應用程式超越其原始腳本形態的能力。透過將Python程式碼編譯成獨立的可執行文件,PyInstaller解鎖了程式碼分發、部署和維護的新境界。從單一腳本到強大應用程式以往,Python腳本只存在於特定的Python環境中。分發這樣的腳本需要使用者安裝Python和必要的函式庫,這是一個費時且繁瑣的過程。 PyInstaller引入了打包的概念,將Python程式碼與所有必要的依賴項組合成一個單獨的執行檔。代碼打包的藝術PyInstaller的工

vue插槽解決什麼問題 vue插槽解決什麼問題 Jan 13, 2023 pm 06:26 PM

vue插槽解決的問題:在引入的子元件標籤中間不允許寫內容的。插槽(Slot)是vue為元件的封裝者提供的能力;允許開發者在封裝元件時,把不確定的、希望由使用者指定的部分定義為插槽;可以把插槽認為是元件封裝期間,為使用者預留的內容的佔位符。

Vue3中的slot函數詳解:使用插槽實現更靈活的組件 Vue3中的slot函數詳解:使用插槽實現更靈活的組件 Jun 18, 2023 am 09:29 AM

Vue是一個受歡迎的JavaScript前端框架,它的第三版(Vue3)推出了許多新特性,其中一個是slot函數。本篇文章將詳細解釋什麼是slot函數,以及如何使用它來實現更靈活的元件。什麼是slot函數在Vue中,元件是頁面元素抽象化的部分,一個元件可以包含在其他元件中。通常情況下,一個元件的內容是固定的,但有時我們希望元件的內容是可變的,這就是slo

什麼是插槽(slot)?聊聊Vue3中插槽的使用方法 什麼是插槽(slot)?聊聊Vue3中插槽的使用方法 Aug 23, 2022 pm 07:57 PM

Vue中的插槽相信使用過Vue的小夥伴或多或少的都用過,但是你是否了解它全部用法呢?這篇文章就為大家帶來Vue3中插槽的全部用法來幫助大家查漏補缺。

Vue中使用slot優化組件的擴充性能 Vue中使用slot優化組件的擴充性能 Jul 17, 2023 pm 03:16 PM

Vue中使用slot最佳化元件的擴充性能在Vue開發中,元件是建構應用介面的重要模組。一個強大而有效的元件可以提高開發效率和程式碼復用性。然而,隨著應用規模的增大,組件的擴展性往往成為一個挑戰。為了解決這個問題,Vue提供了一個強大的功能-slot(插槽)。 slot是Vue中一種用來傳遞內容給元件的機制。透過使用slot,我們可以將程式碼的靈活性和可重複使用性進一步

如何監聽Vue的插槽變化?試試這一招! 如何監聽Vue的插槽變化?試試這一招! Sep 28, 2022 pm 07:52 PM

如何監聽Vue的插槽變化?以下這篇文章跟大家介紹一下監聽Vue插槽變化的方法,希望對大家有幫助!

See all articles