Vue中的插槽相信使用過Vue的小夥伴或多或少的都用過,但是你是否了解它的用法呢?這篇文章就為大家帶來Vue中插槽Slot基本使用和具名插槽,希望對大家有幫助!
一、插槽Slot
#1.1.插槽Slot的作用
⭐⭐
初識插槽:
- 為了讓這個元件具備更強的通用性,我們不能將元件中的內容限制為固定的
div
、span
等等這些元素;【相關推薦: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>
- 效果圖:
# 我們可以發現,在元件showMessage
裡面,我們給它一個插槽, - 在
App.vue
, 我們給showMessage
三次重複使用, -
一次為按鈕
,一次為a標籤
,一次什麼也不加
- 而產生的結果就是,
一個為按鈕
,一個為a連結
,一個為插槽預設的p標籤
我們可以看出來
- 插槽部分想要展示什麼內容由父元素進行決定, 如果插槽沒有插入東西, 那麼這個插槽會被忽略
- 也就是說,用了插槽,父元素如果用按鈕,子元素就會顯示按鈕,父元素用標題,子元素就會顯示標題
- 如果子元件沒有插槽,那就顯示不出來了
1.2.具名插槽Slot
⭐⭐
希望達到的效果是插槽對應內容的顯示,這個時候我們就可以使用具名插槽:
- 具名插槽顧名思義就是給插槽取一個名字,
slot
元素有一個特殊的attribute:name
; - 一個不帶
name
的slot
,會帶有隱含的名字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>
效果圖:
# 達到的效果是插槽對應的顯示
所以這就是具名插槽的作用
⭐⭐
動態插槽名稱
透過v-slot: [dynamicSlotName]
方式動態綁定一個名稱;
Ps:還有作用域插槽,我目前還不是很理解,先不寫了~
#以上是淺析Vue中插槽Slot的作用與具名插槽的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

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

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

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

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

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

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

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


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

記事本++7.3.1
好用且免費的程式碼編輯器

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

WebStorm Mac版
好用的JavaScript開發工具

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