這次帶給大家vue組件使用slot分發內容步驟詳解,vue組件使用slot分發內容的注意事項有哪些,下面就是實戰案例,一起來看一下。
一、什麼是slot
在使用元件時,我們常常要這樣組合它們:
<app> <app-header></app-header> <app-footer></app-footer> </app>
當需要讓元件組合使用,混合父元件的內容與子元件的模板時,就會用到slot , 這個過程叫作內容分發( transclusion )。
注意兩點:
1.
2.
props 傳遞資料、events 觸發事件和slot 內容分發就構成了Vue 元件的3 個API 來源,再複雜的元件也是由這3 部分構成的。
二、作用域
<child-component> {{ message }} </child-component>
這裡的message 就是一個slot ,但它綁定的是父元件的數據,而不是元件<child-component>的數據。
父元件模板的內容是在父元件作用域內編譯,子元件模板的內容是在子元件作用域內編譯。如:
<p> <child-component></child-component> </p> Vue.component('child-component',{ template: '<p>子组件</p>' }); var app15 = new Vue({ el: '#app15', data: { showChild: true } });
這裡的狀態showChild 綁定的是父元件的數據,如果想在子元件上綁定,那應該是:
<p> <child-component></child-component> </p> Vue.component('child-component',{ template: '<p>子组件</p>', data: function(){ return { showChild: true } } });
因此, slot 分發的內容,作用域是在父元件上的。
三、slot用法
#3.1 單一slot
##在子元件內使用特殊的<slot>元素就可以為這個子元件開啟一個slot(插槽),在父元件模板裡,插入在子元件標籤內的所有內容將替代子元件的<p> <my-component16> <p>分发的内容</p> <p>更多分发的内容</p> </my-component16> </p> Vue.component('my-component16',{ template: '<p>' + '<slot><p>如果父组件没有插入内容,我将作为默认出现<</p></slot>' + //预留的slot插槽 '</p>' }); var app16 = new Vue({ el: '#app16' });渲染結果為:
<p> </p><p> </p><p>分发的内容</p><p> </p><p>更多分发的内容</p><p> </p>子元件
child-component 的範本內定義了一個<slot>元素,並且用一個<p>作為預設的內容,當父元件沒有使用slot 時,會渲染這段預設的文字;如果寫入了slot, 那就會替換整個<slot> 。
3.2具名slot
給<slot> 元素指定一個name 後可以分發多個內容,具名Slot 可以與單一slot 共存。<p> <my-component17> <h3 id="标题">标题</h3> <p>正文内容</p> <p>更多正文内容</p> <h3 id="底部信息">底部信息</h3> </my-component17> </p> Vue.component('my-component17',{ template: '<p>' + '</p><p>' + '<slot></slot>' + '</p>' + '<p>' + '<slot></slot>' + '</p>'+ '<p>' + '<slot></slot>' + '</p>'+ '' }); var app17 = new Vue({ el: '#app17' });渲染結果為:
<p> </p><p> </p><p> </p><h3 id="标题">标题</h3> <p> </p><p>正文内容</p> <p>更多正文内容</p> <p> </p><h3 id="底部信息">底部信息</h3>子元件內宣告了3 個<s lot>元素,其中在<p class=」 main >內的<slotname> ,它將作為預設slot 出現,父元件沒有使用slot 特性的元素與內容都會出現在這裡。 四、作用域插槽
作用域插槽是一種特殊的slot ,使用一個可以重複使用的模板來取代己渲染元素。資料傳到了插槽。 ##,就像v-for= ” item in items
裡面的item 一樣,template 內可以透過臨時變數props存取來自子元件插槽的資料msg 。 下面看下Vue元件中slot的用法#主要是讓元件的可擴充性更強。
1. 使用匿名slot
2. 給slot加個名字 如果不在有slot的元件裡加入任何標籤,slot什麼都不會顯示的。 相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章! 推薦閱讀:
以上是vue組件使用slot分發內容步驟詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python和JavaScript的主要區別在於類型系統和應用場景。 1.Python使用動態類型,適合科學計算和數據分析。 2.JavaScript採用弱類型,廣泛用於前端和全棧開發。兩者在異步編程和性能優化上各有優勢,選擇時應根據項目需求決定。

選擇Python還是JavaScript取決於項目類型:1)數據科學和自動化任務選擇Python;2)前端和全棧開發選擇JavaScript。 Python因其在數據處理和自動化方面的強大庫而備受青睞,而JavaScript則因其在網頁交互和全棧開發中的優勢而不可或缺。

Python和JavaScript各有優勢,選擇取決於項目需求和個人偏好。 1.Python易學,語法簡潔,適用於數據科學和後端開發,但執行速度較慢。 2.JavaScript在前端開發中無處不在,異步編程能力強,Node.js使其適用於全棧開發,但語法可能複雜且易出錯。

javascriptisnotbuiltoncorc; sanInterpretedlanguagethatrunsonenginesoftenwritteninc.1)JavascriptwasdesignedAsignedAsalightWeight,drackendedlanguageforwebbrowsers.2)Enginesevolvedfromsimpleterterpretpretpretpretpreterterpretpretpretpretpretpretpretpretpretcompilerers,典型地,替代品。

JavaScript可用於前端和後端開發。前端通過DOM操作增強用戶體驗,後端通過Node.js處理服務器任務。 1.前端示例:改變網頁文本內容。 2.後端示例:創建Node.js服務器。

選擇Python還是JavaScript應基於職業發展、學習曲線和生態系統:1)職業發展:Python適合數據科學和後端開發,JavaScript適合前端和全棧開發。 2)學習曲線:Python語法簡潔,適合初學者;JavaScript語法靈活。 3)生態系統:Python有豐富的科學計算庫,JavaScript有強大的前端框架。

JavaScript框架的強大之處在於簡化開發、提升用戶體驗和應用性能。選擇框架時應考慮:1.項目規模和復雜度,2.團隊經驗,3.生態系統和社區支持。

引言我知道你可能會覺得奇怪,JavaScript、C 和瀏覽器之間到底有什麼關係?它們之間看似毫無關聯,但實際上,它們在現代網絡開發中扮演著非常重要的角色。今天我們就來深入探討一下這三者之間的緊密聯繫。通過這篇文章,你將了解到JavaScript如何在瀏覽器中運行,C 在瀏覽器引擎中的作用,以及它們如何共同推動網頁的渲染和交互。 JavaScript與瀏覽器的關係我們都知道,JavaScript是前端開發的核心語言,它直接在瀏覽器中運行,讓網頁變得生動有趣。你是否曾經想過,為什麼JavaScr


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

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

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3漢化版
中文版,非常好用

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。