Vue基礎知識:插槽——默認插槽,插槽的后備內容,具名插槽,作用域插槽的認識與使用。(slot,#default,row的認識)

1.插槽的基本認識:

作用:讓組件內部的一些結構支持自定義
插槽的分類:

1.默認插槽(組件內只能定制一處結構)

2.具名插槽(組件內可以定制多次結構)

簡單而言:就是你希望封裝一個組件,這個組件會在多個地方使用,但是每個使用的地方其中的內容部分又是不同的,這個時候你希望自定義,就會運用到插槽。

2.默認插槽的基礎語法:

1.組件內需要定制的部分用<slot></slot>占位

2.使用組件時,<組件名></組件名>在標簽內容傳入替換slot的內容

下面進行代碼演示:

使用slot標簽占位

?完成的效果圖:

此時我們又會面臨一個問題,如果我不給自定義內容,就不會有任何內容,這樣一片空白實在是不好看。那我們如何加默認值(設置默認內容)?

3.插槽的后備內容:

1.語法:在<slot>標簽內,放置內容,作為默認顯示內容。

作用:1.組件標簽使用時沒有傳入內容,會slot會顯示后備內容。

2.組件標簽使用時有傳入內容,則slot會被整體替換掉。

下面進行代碼演示:

?效果圖:

4.插槽—具名插槽(具有名字的插槽)

上面已經講解了默認插槽,但是它有一個明顯的缺點就是只能定制一個地方。而下面所說的具名插槽就可以很好的解決這個問題。

作用:一個組件內有多處結構,需要外部傳入標簽,進行定制。

1.具名插槽語法:

1.多個slot使用name屬性區分名字

2.template配合v-slot:名字來分發對應的標簽。

3.為了方便官方(v-slot:插槽名可以簡寫成#插槽名

下面進行代碼演示:

效果圖:

使用#插槽名演示

?5.作用域插槽(是插槽的一個傳參語法):

作用域插槽:定義slot插槽的同時,可以傳值的,給插槽上可以綁定數據,將來使用組件時可以使用。

使用場景:

1.父傳子需要渲染內容時

2.比如我們常使用的刪除、編輯等功能都需要當前項的id值,但是id屬于組件內部的數據通過作用域插槽傳值綁定,進而使用。

作用域插槽的基本使用步驟:

1.給slot標簽,已添加屬性的方式傳值

2.所有添加的屬性,都會被收集到一個對象中去。

3.在template中,通過“#插槽名字=“obj””接收(這里的obj可以自定義,就是個對象名而已),默認插槽名為default

下面進行代碼演示:

組件:MyTable.vue代碼:

<template><table class="my-table"><thead><tr><th>序號</th><th>姓名</th><th>年紀</th><th>操作</th></tr></thead><tbody><tr  v-for="(item,index) in data" :key="item.id"><td>{{index+1}}</td><td>{{item.name}}</td><td>{{item.age}}</td><td><!-- 1.給slot標簽已添加屬性的方式傳值 --><slot :row="item" msg="測試文本"></slot><!-- 2.會將所用的屬性添加到一個對象中去 --></td></tr></tbody></table>
</template><script>
export default {props: {data: Array,},
}
</script><style scoped>
.my-table {width: 450px;text-align: center;border: 1px solid #ccc;font-size: 24px;margin: 30px auto;
}
.my-table thead {background-color: #1f74ff;color: #fff;
}
.my-table thead th {font-weight: normal;
}
.my-table thead tr {line-height: 40px;
}
.my-table th,
.my-table td {border-bottom: 1px solid #ccc;border-right: 1px solid #ccc;
}
.my-table td:last-child {border-right: none;
}
.my-table tr:last-child td {border-bottom: none;
}
.my-table button {width: 65px;height: 35px;font-size: 18px;border: 1px solid #ccc;outline: none;border-radius: 3px;cursor: pointer;background-color: #ffffff;margin-left: 5px;
}
</style>

下面是App.vue代碼:

?

<template><div><!-- :data="list"相當于父傳子 --><MyTable :data="list"><!-- 注意要用<template></template>包裹 --><!-- 由于我們使用的是默認插槽,所以用default --><!-- 3.通過template #插槽名="變量名" 接收 --><template #default="obj"><button @click="del(obj.row.id)">刪除</button></template></MyTable><MyTable :data="list2"><template #default="{row}"><!-- 這個對象也支持結構 --><button @click="show(row)">查看</button></template></MyTable></div>
</template><script>
import MyTable from './components/MyTable.vue'
export default {data () {return {list: [{ id: 1, name: '張小花', age: 18 },{ id: 2, name: '孫大明', age: 19 },{ id: 3, name: '劉德忠', age: 17 },],list2: [{ id: 1, name: '趙小云', age: 18 },{ id: 2, name: '劉蓓蓓', age: 19 },{ id: 3, name: '姜肖泰', age: 17 },]}},components: {MyTable},methods:{del(id){this.list=this.list.filter(item=>item.id!==id)},show(row){console.log(row)}}
}
</script>

效果圖:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/24628.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/24628.shtml
英文地址,請注明出處:http://en.pswp.cn/web/24628.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

09-數組的含義以及零長數組變長數組與多維數組

09-數組的含義以及零長數組變長數組與多維數組 文章目錄 09-數組的含義以及零長數組變長數組與多維數組一、數組名的含義1.1 表示整個數組的首地址1.2 表示整個數組首元素的首地址 二、數組下標字符串常量 三、零長數組3.1 示例 四、變長數組4.1 示例 五、多維數組5.1 定義與初…

nodejs---fs模塊,文件讀寫操作詳解,自定義一個文件寫入方法

fs模塊導入 Node.js 同時支持 CommonJS 和 ES 模塊系統&#xff08;自 Node.js v12 以來&#xff09; // 兩種模塊導入方式 import * as fs from fs;// Es6:這種方式需要在package.json中配置"type": "module" const fs require(fs);// commonJs:如果你…

golang協程工作池處理多任務示例

1. 工作方法實現 // 工作線程 // id : 線程號 // jobs : 任務通道 (chan) // results: 完成結果通道 (chan) func worker(id int, jobs <-chan int, results chan<- int) {//遍歷任務for j : range jobs {fmt.Println("工作協程: ", id, "啟動任務: &quo…

oracle中如何查詢特定日期?

1. select last_day(to_date(20230101,YYYYMMDD)) from dual; select last_day(to_date(V_END_DATE,YYYYMMDD)) from dual; --查詢任意一天 當月的最后一天 2. select to_char(to_date(20230101,YYYYMMDD)-1,YYYYMMDD) INTO V_START_DATE FROM DUAL; select to_char(to_dat…

vscode輸出控制臺中文顯示亂碼最有效解決辦法

當VSCode的輸出控制臺中文顯示亂碼時&#xff0c;一個有效的解決辦法是通過設置環境變量來確保編碼的正確性。以下是解決方式&#xff1a; 首先&#xff0c;設置環境變量以修正亂碼問題&#xff1a; 如果上述方法沒有解決亂碼問題&#xff0c;請繼續以下步驟&#xff1a; 右鍵…

技術革命的十年:計算機、互聯網、大數據、云計算與AI

近10年來&#xff0c;計算機、互聯網、大數據、云計算和人工智能等技術領域發展迅速&#xff0c;帶來了巨大的變革和創新。以下是各個領域的發展歷史、現狀、問題瓶頸、未來趨勢以及可能的奇點。 計算機技術&#xff1a; 發展歷史&#xff1a; 過去&#xff1a;過去十年間&am…

HTML5表單元素:重塑數據收集的藝術

HTML5為網頁表單帶來了革命性的變化&#xff0c;不僅增強了用戶體驗&#xff0c;也為開發者提供了更加強大和靈活的工具來收集和驗證數據。本文將深入解析HTML5中新增和改進的表單元素&#xff0c;通過實例展示它們如何提升表單功能和交互性。 1. 新增表單元素 <input>…

SVN中trunk,branch,tag

SVN trunk(主線) branch(分支) tag(標記) 用法詳解和詳細操作步驟_svn 分支-CSDN博客 場景: 項目的1.0版本已經完成開發,測試,并上線了. 接到了新需求,要修改多個文件的代碼. 你寫了一段時間的時候,用戶或測試人員反饋, 1.0版本有重大bug要修復,修復好后立刻上線. 此時應該怎么…

RocketMQ的安裝

首先到RocketMQ官網下載頁面下載 | RocketMQ (apache.org)&#xff0c;本機解壓縮&#xff0c;作者在這里用的是最新的5.2.0版本。按照如下步驟安裝。 1、環境變量配置rocket mq地址 ROCKETMQ_HOME D:\rocketmq-all-5.2.0-bin-release 在變量path中添加”%ROCKETMQ_HOME%\bi…

免費數據庫同步軟件

在信息化日益發展的今天&#xff0c;數據同步成為了企業和個人用戶不可或缺的一部分。數據庫同步軟件作為數據同步的重要工具&#xff0c;能夠幫助我們實現不同數據庫系統之間的數據復制和同步&#xff0c;確保數據的一致性和完整性。本文將介紹幾款免費數據庫同步軟件&#xf…

ES5/ES6 的繼承除了寫法以外還有什么區別?

一、主要區別 ES5 的繼承實質上是先創建子類的實例對象&#xff0c; 然后再將父類的方法添加 到 this 上&#xff08;Parent.apply(this)&#xff09; . ES6 的繼承機制完全不同&#xff0c; 實質上是先創建父類的實例對象 this&#xff08;所以必 須先調用父類的 super()方法…

C#根據反射生成sql語句(Update語句)

今天有人問我Update語句怎么搞&#xff0c;想了一下大致思路就是用特性去標識一下&#xff0c;主鍵&#xff0c;然后再去用反射的方式拼sql語句。 在C#中&#xff0c;我們可以使用特性&#xff08;Attributes&#xff09;來標識一個類的屬性作為該類的主鍵&#xff08;Primary…

旅游卡系統開發搭建

旅游卡系統的開發搭建是一個涉及多個步驟和關鍵因素的復雜過程。以下是關于旅游卡系統開發搭建的詳細步驟和要點&#xff1a; 一、需求分析 目標用戶調研&#xff1a;深入調研目標用戶&#xff0c;了解他們的需求和痛點&#xff0c;從而確定系統的功能和特點。功能確定&#…

數據分析必備:一步步教你如何用Pandas做數據分析(20)

1、Pandas 分類數據 Pandas 分類數據的操作實例 數據通常實時包含重復的文本列。性別&#xff0c;國家/地區和代碼等功能始終是重復的。這些是分類數據的示例。 分類變量只能采用有限的且通常是固定數量的可能值。除固定長度外&#xff0c;分類數據可能還具有順序&#xff0c;…

elasticsearch安裝與使用(1)-使用docker安裝Elasticsearch

ES的優點&#xff1a; 1、分布式準實時2、提供REST風格的API接口&#xff0c;是用戶可解借助任何語言使用https對ES執行請求來完成搜索任務&#xff1b;3、提供聚合功能 1、Elasticsearch安裝 docker network create elastic docker pull docker.elastic.co/elasticsearch/e…

MySQL入門學習-聚合和分組.計數(COUNT()函數)

在 MySQL 中&#xff0c;聚合和分組是用于對數據進行匯總和分析的強大功能。聚合函數可以計算數據的總和、平均值、最小值、最大值等統計信息&#xff0c;而分組則可以將數據按照特定的字段進行分組&#xff0c;然后對每個分組進行聚合計算。計數&#xff08;COUNT() 函數&…

【MYSQL系列】mysql中text,longtext,mediumtext區別

【MYSQL系列】mysql中text,longtext,mediumtext區別 在MySQL數據庫中&#xff0c;TEXT、LONGTEXT和MEDIUMTEXT都是用于存儲大量文本數據的字段類型。它們之間的主要區別在于可存儲的數據大小和性能方面的差異。本文將探討這些字段類型的特點、使用場景和一些最佳實踐。 TEXT類…

貪心(不相交的開區間、區間選點、帶前導的拼接最小數問題)

目錄 1.簡單貪心 2.區間貪心 不相交的開區間 1.如何刪除&#xff1f; 2.如何比較大小 區間選點問題 3.拼接最小數 1.簡單貪心 比如&#xff1a;給你一堆數&#xff0c;你來構成最大的幾位數 2.區間貪心 不相交的開區間 思路&#xff1a; 首先&#xff0c;如果有兩個…

代碼隨想錄算法訓練營第三十二天|LeetCode122 買賣股票的最佳時機Ⅱ、LeetCode55 跳躍游戲、LeetCode45 跳躍游戲Ⅱ

題1&#xff1a; 指路&#xff1a;122. 買賣股票的最佳時機 II - 力扣&#xff08;LeetCode&#xff09; 思路與代碼&#xff1a; 基本思路&#xff1a;一天買入一天賣出&#xff0c;得到每部分正利潤作為局部最優解&#xff0c;例如prices[7, 1, 5, 3, 6, 4]中&#xff0c;…

山東大學軟件學院項目實訓-創新實訓-基于大模型的旅游平臺(三十)- 微服務(10)

目錄 12.5 RestClient操作索引庫 12.5.1創建庫 12.5.2 刪除索引庫 12.5.3 判斷是否存在 12.6 RestClient操作文檔 12.6.1 新增文檔 12.6.2 查詢文檔 12.6.3 修改文檔 12.6.4 刪除文檔 12.6.5 批量導入文檔 12.5 RestClient操作索引庫 酒店mapping映射 ?PUT /hotel{&…