日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Vue中slot-scope的深入理解(適合初學者)

瀏覽:34日期:2022-09-30 16:10:19

百度上已經有很多的關于slot-scope的文章,但我感覺都是那些以前沒學好,又回頭學的人,他們都使用了.Vue文件,我覺得有點不適合初學者,所以我就寫一篇適合初學者的。

先拋例程:

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>組件之通過插槽(slot)分發內容</title> <script src='http://www.b3g6.com/bcjs/你的vue地址,請下載最新版的'></script> <script>Vue.component('test-slot',{ // 插槽允許有默認內容 template: `<div> <strong>Error!</strong> <slot></slot></div> `, data:function () {return { name:'perry'} }}); // 具名插槽Vue.component('slot-name',{ template: `<div> <header> <slot name='header'></slot> </header> <main><slot ></slot> </main> <footer><slot name='footer'></slot> </footer> </div> `}); // 作用域插槽Vue.component('todo-list',{ inheritAttrs:false, props:{todos:[Array,Object] }, template: `<ul><li v-for='todo in todos' :key='todo.id' > <slot :data='todo'>{{todo.text}}</slot></li> </ul> `}); </script><style>li{ list-style: none; display: inline-block; font-size: 25px;} </style></head><body> <div id='app'><!--1、插槽內容 slot可以接收任何內容、代碼,包括組件--><test-slot>Something bad happened.你是誰啊,我認識你嗎</test-slot><test-slot> Something bad happened. <!--允許使用變量,但該變量必須是本作用域的才會生效,這里name的值將會是'岔道口'--> <h3>標題{{name}}</h3> <img src='http://www.b3g6.com/bcjs/img/flower.jfif' alt='圖片無法顯示'></test-slot><!--2、具名插槽 slo有一個特殊的屬性name,可以使插槽具名--><slot-name> <h3>勸學</h3> <p>少壯不努力,老大徒傷悲</p> <p>光陰似箭,日月如梭</p> <template slot='header'><ul > <li>主頁</li> <li>關于時間</li> <li>關于人生</li> <li>關于未來</li></ul> </template> <p>你好啊</p> <p slot='footer'><p>結尾</p><p>粵ICP備6545646456415</p> </p></slot-name><!--使用作用域插槽,通過slot-scope實現--><todo-list :todos='todos'> <template slot-scope='slotProps'><span v-if='slotProps.data.isTrue'>√</span>{{slotProps.data.text}} </template></todo-list><!--使用ES2015結構語法--><todo-list :todos='todos'> <template slot-scope='{data}'><span v-if='data.isTrue'>√</span>{{data.text}} </template></todo-list> </div> <script>new Vue({ el:'#app', data:{name:'岔道口',todos:[ {text:'A',id:1,isTrue:true}, {text:'B',id:2,isTrue:true}, {text:'C',id:3,isTrue:false}, {text:'D',id:4,isTrue:true},],// slotProps:'' }}) </script></body></html>

例程中也寫了普通插槽和具名插槽,這個我就不說,我就說一下作用域插槽。首先從“作用域插槽“”這個名字說起,本來你父組件的模板是無法使用到子組件模板中的數據,官網中有一句特別強調的話:父組件模板的所有東西都會在父級作用域內編譯;子組件模板的所有東西都會在子級作用域內編譯。這句話其實挺難理解,舉個例子就知道了,

<test-slot> Something bad happened. <!--允許使用變量,但該變量必須是本作用域的才會生效,這里name的值將會是'岔道口'--> <h3>標題{{name}}</h3> <img src='http://www.b3g6.com/bcjs/img/flower.jfif' alt='圖片無法顯示'></test-slot>

這是我上面的例子,也就是說這里name必須是當前組件里的,不能是test-slot這個組件內部的數據,這是它作用域限制,name這個數據屬于父組件的作用域,所以只能是父組件的數據。但是slot-scope的出現卻實現了父組件調用子組件內部的數據,子組件的數據通過slot-scope屬性傳遞到了父組件

// 作用域插槽 Vue.component('todo-list',{inheritAttrs:false,props:{ todos:[Array,Object]},template:`<ul> <li v-for='todo in todos' :key='todo.id' > //這里的:data=“todo”就是講子組件todo這個數據傳給了父組件<slot :data='todo'>{{todo.text}}</slot>//todo.text是默認值,父組件會把它覆蓋掉 </li> </ul>` });

<!--使用作用域插槽,通過slot-scope實現--><todo-list :todos='todos'> <template slot-scope='slotProps'><span v-if='slotProps.data.isTrue'>√</span>{{slotProps.data.text}} </template></todo-list>

使用的時候就是這樣,從子組件傳過來的名為data值為todo的數據將會被slot-scope接收,需要注意的是,slot-scope接收的是一個對象,這里命名為slotProps,也就是說你傳過來的data將會作為slotProps的一個屬性,所以需要slotProps.data才能調用到data。前面說了,data的值為todo,todo是什么呢?todo是todos遍歷出來的,所以是一個對象。

new Vue({ el:'#app', data:{name:'岔道口',todos:[ {text:'A',id:1,isTrue:true}, {text:'B',id:2,isTrue:true}, {text:'C',id:3,isTrue:false}, {text:'D',id:4,isTrue:true},],// slotProps:'' }});

我們已經理解了slot-scope特性,那么他有什么運用場景呢?我們可以試想一下,別人寫好了一個組件,該組件已經封裝好了,但他覺得,數據的顯示風格讓用戶自己定義,就像我們上面,我們希望列表的樣式由用戶定義,比如我就加了一個√號。一開始最初的數據是我們傳進去的,但數據必須進過子組件處理后,寫組件那個人肯定希望顯示的是處理后的數據。這時候slot-scope就無比重要了。

總結

到此這篇關于Vue中slot-scope深入理解的文章就介紹到這了,更多相關Vue slot-scope理解內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲激情不卡| 亚洲激情精品| 成人看片网站| 久久麻豆视频| www.com.cn成人| 日韩精品国产欧美| 亚洲午夜黄色| 久久一区亚洲| 女人天堂亚洲aⅴ在线观看| 久久国产三级| 国产精品普通话对白| 欧美日一区二区三区在线观看国产免| 成人在线丰满少妇av| 亚洲影视一区二区三区| 久久久久97| 日韩视频一二区| 91精品国产成人观看| 久久大逼视频| 久久五月天小说| 久久在线91| 国产日韩欧美在线播放不卡| 色综合五月天| 国产精品永久| 日韩avvvv在线播放| jiujiure精品视频播放| 日本一区二区免费高清| 欧美精品三级在线| 国产亚洲一区| 国产日产精品一区二区三区四区的观看方式| 亚洲a在线视频| 电影亚洲精品噜噜在线观看| 久久亚洲精品中文字幕| 亚洲欧洲日韩精品在线| 久久人人99| 国产综合色产| 女人天堂亚洲aⅴ在线观看| 国产精品91一区二区三区| 日本国产精品| 亚洲91视频| 国产亚洲精品美女久久| 久久av超碰| 国产不卡一区| 免费高潮视频95在线观看网站| 日韩一区二区中文| 国产66精品| 精品国产不卡一区二区| 午夜久久中文| 精品国产91| 国产一区二区三区亚洲| 日韩精品一区二区三区免费观看| 欧美三级精品| 亚洲夜间福利| 亚洲深夜福利在线观看| 欧美亚洲人成在线| 国产日韩免费| 三级精品视频| 在线日韩成人| 国产精品麻豆成人av电影艾秋 | 亚洲成人免费| 午夜视频精品| 日本久久一区| 久久99影视| 日韩电影二区| 亚洲欧美久久久| 欧美精品三级在线| 日韩精选在线| 欧美69视频| 欧美日韩国产高清| 91精品啪在线观看国产18| 国产精品成人a在线观看| 欧美午夜三级| 亚洲免费专区| 亚洲一区有码| 91亚洲一区| 亚洲深深色噜噜狠狠爱网站| 日韩精品福利一区二区三区| 中文字幕av一区二区三区人| 在线亚洲国产精品网站| 深夜福利视频一区二区| 在线日韩电影| 亚洲精品系列| 国产精品久久久久77777丨| 国产精品中文| 国产亚洲精品久久久久婷婷瑜伽| 中文字幕人成乱码在线观看 | 综合激情一区| 精品免费在线| 午夜亚洲精品| 日日夜夜免费精品| 国产欧美大片| 国产精品白丝一区二区三区| 99久久精品费精品国产| 久久国产欧美日韩精品| 美女免费视频一区| 亚洲精品在线国产| 一区二区三区四区日本视频| 久久午夜精品| 欧美一区不卡| 亚洲丝袜美腿一区| 色爱av综合网| 成人看片网站| 亚洲欧洲日韩精品在线| 日本成人精品| 日韩电影免费网址| 日本欧美在线| 狠狠爱成人网| 视频二区不卡| 日韩va亚洲va欧美va久久| 国产精品一区二区三区av| 粉嫩av一区二区三区四区五区 | 国产欧美日韩综合一区在线播放| 久久久久久夜| 免费在线视频一区| 黄色亚洲精品| bbw在线视频| 97精品国产一区二区三区 | 国产欧美日韩精品一区二区三区 | 三级一区在线视频先锋| 亚洲精品乱码日韩| 麻豆精品在线播放| 亚洲欧美日韩一区在线观看| 欧美特黄视频| 欧美日本久久| 久久久成人网| 伊人久久亚洲美女图片| 亚洲精品一区二区在线看| 欧美日韩中文字幕一区二区三区| 另类av一区二区| 国产高清日韩| 婷婷亚洲五月色综合| 国产欧美88| 国产精品亚洲欧美| 亚洲a一区二区三区| 亚洲免费福利一区| 在线天堂中文资源最新版| 午夜影院欧美| 另类欧美日韩国产在线| 一区在线免费| 精品久久精品| 99久久夜色精品国产亚洲狼 | 日韩精品首页| 中文字幕免费精品| 成人久久一区| 久久亚洲精品中文字幕| 亚洲一区国产| 国产精品久久乐| 亚洲激情中文| 国内精品美女在线观看| 亚洲欧美网站在线观看| 久久久久久美女精品| 蜜桃av一区二区三区电影| 亚洲精品福利| 亚洲一区中文| 亚洲精品人人| 性感美女一区二区在线观看| 国产情侣久久| 亚洲欧美久久精品| 91精品啪在线观看国产18| 日韩三级一区| 久久不射网站| 激情91久久| 欧美精选一区二区三区| 日本一区二区三区视频在线看| 国产精品一页| 黄色在线一区| 午夜在线视频观看日韩17c| 欧美交a欧美精品喷水| 欧美xxxx中国| 亚洲不卡av不卡一区二区| 国产videos久久| 三级在线看中文字幕完整版| 日韩免费高清| 欧美福利在线| 午夜在线播放视频欧美| 99国产精品视频免费观看一公开| 精品视频国产| 日韩在线观看| 欧美日韩精品免费观看视完整| 免费看av不卡| 人在线成免费视频| 国产麻豆一区二区三区| 欧美黄色精品| 久久精品毛片| 精品视频高潮| 亚洲欧洲av| 亚洲最大av| 成人av二区| 久久视频一区| 久久人人精品| 91成人在线网站| 欧美日韩少妇| 精品中文字幕一区二区三区| 深夜日韩欧美| 国产精品啊啊啊| 国产一区二区三区久久久久久久久| 亚洲精品高潮| 日韩国产一二三区| 欧美久久精品| 视频在线在亚洲| 黄色免费成人|