搜尋
首頁web前端Vue.js淺析Vue中插槽Slot的作用與具名插槽

淺析Vue中插槽Slot的作用與具名插槽

Nov 03, 2022 pm 08:29 PM
vuevue.jsvue3插槽

Vue中的插槽相信使用過Vue的小夥伴或多或少的都用過,但是你是否了解它的用法呢?這篇文章就為大家帶來Vue中插槽Slot基本使用和具名插槽,希望對大家有幫助!

淺析Vue中插槽Slot的作用與具名插槽

一、插槽Slot

#1.1.插槽Slot的作用

⭐⭐
初識插槽:

  • 為了讓這個元件具備更強的通用性,我們不能將元件中的內容限制為固定的divspan等等這些元素;【相關推薦:vuejs影片教學
  • 例如某種情況下我們使用元件,希望元件顯示的是按鈕,某種情況下我們使用元件希望顯示的是一張圖片;
  • 我們應該讓使用者可以決定某一塊區域到底要存放什麼內容和元素;
  • 所以就可以使用插槽來解決這個問題

換句話說就是,我們要是想在一個元件標籤中加入新的內容,那麼我們就需要在該元件內宣告一個插槽,不然,新增的新內容不會被渲染

⭐⭐
使用插槽:

  • slot元素作為插槽
  • 插入什麼內容是由父元素如何使用,例如父元件插入按鈕、插入圖片,就會顯示按鈕圖片,如果沒有,那就不顯示或許顯示插槽預設的內容
  • 有時我們希望在使用插槽時,如果沒有插入對應的內容,那麼我們需要顯示一個預設的內容:
  • 當然這個預設的內容只會在沒有提供插入的內容時,才會顯示;
  • 我們可以在slot標籤中設定一個預設內容

使用插槽案例:

父元件

App.vue

<template>
    <div class="app">
        <!-- 内容是button -->
        <show-message title="哈哈哈">
            <button>我是按钮元素</button>
        </show-message>
        <!-- 内容是超链接 -->
        <show-message>
            <a href="#">百度一下</a>
        </show-message>

        <!-- 没有值传递 -->
        <show-message></show-message>
    </div>
</template>

子元件
showMessage.vue

<template>
    <h2 id="title">{{title}}</h2>
    <div class="content">
        <slot>
            <p>我是默认值</p>
        </slot>
    </div>
</template>
  • 效果圖:
    淺析Vue中插槽Slot的作用與具名插槽
    # 我們可以發現,在元件showMessage裡面,我們給它一個插槽,
  • App.vue, 我們給showMessage三次重複使用,
  • 一次為按鈕一次為a標籤一次什麼也不加
  • 而產生的結果就是,一個為按鈕,一個為a連結一個為插槽預設的p標籤

我們可以看出來

  • 插槽部分想要展示什麼內容由父元素進行決定, 如果插槽沒有插入東西, 那麼這個插槽會被忽略
  • 也就是說,用了插槽,父元素如果用按鈕,子元素就會顯示按鈕,父元素用標題,子元素就會顯示標題
  • 如果子元件沒有插槽,那就顯示不出來了

1.2.具名插槽Slot

⭐⭐

希望達到的效果是插槽對應內容的顯示,這個時候我們就可以使用具名插槽:

  • 具名插槽顧名思義就是給插槽取一個名字,slot 元素有一個特殊的attribute:name;
  • 一個不帶 nameslot,會帶有隱含的名字 default;
  • 也就是說, 我們可以給每個插槽都取上一個名字,
  • 在父組件中使用的時候, 需要包裹一個template標籤, 並在template#中使用
  • v-solt: 插槽名具名插槽縮寫

##父元件
#App.vue

<template>
    <nav-bar>
        <template v-slot:left>
            <button>返回</button>
        </template>

        <template v-slot:center>
            <span>内容</span>
        </template>

        <template v-slot:right>
            <a href="#">登录</a>
        </template>
    </nav-bar>
</template>

子元件
NavBar.vue
(顏色啥的css裡面自己可以調,這裡就不放了)

<template>
    <div class="nav-bar">
        <div class="left">
            <slot name="left">left</slot>
        </div>
        <div class="center">
            <slot name="center">center</slot>
        </div>
        <div class="right">
            <slot name="right">right</slot>
        </div>
    </div>
</template>

效果圖:
淺析Vue中插槽Slot的作用與具名插槽
# 達到的效果是插槽對應的顯示
所以這就是具名插槽的作用

⭐⭐
動態插槽名稱
透過v-slot: [dynamicSlotName]方式動態綁定一個名稱;

Ps:還有作用域插槽,我目前還不是很理解,先不寫了~

(學習影片分享:web前端開發程式設計基礎影片

#

以上是淺析Vue中插槽Slot的作用與具名插槽的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:csdn。如有侵權,請聯絡admin@php.cn刪除
了解vue.js:主要是前端框架了解vue.js:主要是前端框架Apr 17, 2025 am 12:20 AM

Vue.js是由尤雨溪在2014年發布的漸進式JavaScript框架,用於構建用戶界面。它的核心優勢包括:1.響應式數據綁定,數據變化自動更新視圖;2.組件化開發,UI可拆分為獨立、可複用的組件。

Netflix的前端:React(或VUE)的示例和應用Netflix的前端:React(或VUE)的示例和應用Apr 16, 2025 am 12:08 AM

Netflix使用React作為其前端框架。 1)React的組件化開發模式和強大生態系統是Netflix選擇它的主要原因。 2)通過組件化,Netflix將復雜界面拆分成可管理的小塊,如視頻播放器、推薦列表和用戶評論。 3)React的虛擬DOM和組件生命週期優化了渲染效率和用戶交互管理。

前端景觀:Netflix如何處理其選擇前端景觀:Netflix如何處理其選擇Apr 15, 2025 am 12:13 AM

Netflix在前端技術上的選擇主要集中在性能優化、可擴展性和用戶體驗三個方面。 1.性能優化:Netflix選擇React作為主要框架,並開發了SpeedCurve和Boomerang等工具來監控和優化用戶體驗。 2.可擴展性:他們採用微前端架構,將應用拆分為獨立模塊,提高開發效率和系統擴展性。 3.用戶體驗:Netflix使用Material-UI組件庫,通過A/B測試和用戶反饋不斷優化界面,確保一致性和美觀性。

React與Vue:Netflix使用哪個框架?React與Vue:Netflix使用哪個框架?Apr 14, 2025 am 12:19 AM

NetflixusesAcustomFrameworkcalled“ Gibbon” BuiltonReact,notReactorVuedIrectly.1)TeamSperience:selectBasedonFamiliarity.2)ProjectComplexity:vueforsimplerprojects:reactforforforproproject,reactforforforcompleplexones.3)cocatizationneedneeds:reactoffipicatizationneedneedneedneedneedneeds:reactoffersizationneedneedneedneedneeds:reactoffersizatization needefersmoreflexibleise.4)

框架的選擇:是什麼推動了Netflix的決定?框架的選擇:是什麼推動了Netflix的決定?Apr 13, 2025 am 12:05 AM

Netflix在框架選擇上主要考慮性能、可擴展性、開發效率、生態系統、技術債務和維護成本。 1.性能與可擴展性:選擇Java和SpringBoot以高效處理海量數據和高並發請求。 2.開發效率與生態系統:使用React提升前端開發效率,利用其豐富的生態系統。 3.技術債務與維護成本:選擇Node.js構建微服務,降低維護成本和技術債務。

反應,vue和Netflix前端的未來反應,vue和Netflix前端的未來Apr 12, 2025 am 12:12 AM

Netflix主要使用React作為前端框架,輔以Vue用於特定功能。 1)React的組件化和虛擬DOM提升了Netflix應用的性能和開發效率。 2)Vue在Netflix的內部工具和小型項目中應用,其靈活性和易用性是關鍵。

前端中的vue.js:現實世界的應用程序和示例前端中的vue.js:現實世界的應用程序和示例Apr 11, 2025 am 12:12 AM

Vue.js是一種漸進式JavaScript框架,適用於構建複雜的用戶界面。 1)其核心概念包括響應式數據、組件化和虛擬DOM。 2)實際應用中,可以通過構建Todo應用和集成VueRouter來展示其功能。 3)調試時,建議使用VueDevtools和console.log。 4)性能優化可通過v-if/v-show、列表渲染優化和異步加載組件等實現。

vue.js和React:了解關鍵差異vue.js和React:了解關鍵差異Apr 10, 2025 am 09:26 AM

Vue.js適合小型到中型項目,而React更適用於大型、複雜應用。 1.Vue.js的響應式系統通過依賴追踪自動更新DOM,易於管理數據變化。 2.React採用單向數據流,數據從父組件流向子組件,提供明確的數據流向和易於調試的結構。

See all articles

熱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尊渡假赌尊渡假赌尊渡假赌

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

記事本++7.3.1

記事本++7.3.1

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

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),