<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
新建元件 Article
<template> <div> 日期:2022-01-15 <slot></slot> </div> </template>
新建 Learn,並在 Learn 中使用 Article
Learn.vue 和 Article.vue 在同一資料夾下
<template> <div> <Article> <div>送郎八月到揚州,長夜孤眠在畫樓。女子拆開不成好,秋心合著卻成愁</div> </Article> </div> </template> <script> import Article from './Article.vue' export default { components: {Article} } </script>
slot 相當於把 div 插入到 Article 中 slot 位置
執行效果
即使用 slot 時,不傳入會顯示預設的內容,傳入則使用傳入的內容
如不設定預設值,則不顯示任何內容,程式碼如下
先看不設定預設值的情況
Article 內容
<template> <div> 日期:2022-01-15 <slot></slot> </div> </template>
Learn 內容
<template> <div> <Article> </Article> </div> </template> <script> import Article from './Article.vue' export default { components: {Article} } </script>
執行效果
設定預設值
Article 內容
<template> <div> 日期:2022-01-15 <slot> <div>醉眠芳樹下,半被落花埋</div> </slot> </div> </template>
Learn 內容
<template> <div> <Article> </Article> </div> </template> <script> import Article from './Article.vue' export default { components: {Article} } </script>
執行效果
Article 內容
<template> <div> <slot name="title"></slot> 日期:2022-01-15 <slot name="content"></slot> </div> </template>
Learn 內容
<template> <div> <Article> <template v-slot:title> <div>窗前 【作者】趙崇嶓 </div> </template> <template v-slot:content> <div> 窗前尋丈地,種得一株梅。 明月清風我,紅塵不復來。 </div> </template> </Article> </div> </template> <script> import Article from './Article.vue' export default { components: {Article} } </script>
通過給 slot 標籤設定 name 屬性值,並通過 v-slot 來對應
執行效果
v-slot:title 可以簡寫為 #title,程式碼如下
<template> <div> <Article> <template #title> <div>窗前 【作者】趙崇嶓 </div> </template> <template #content> <div> 窗前尋丈地,種得一株梅。 明月清風我,紅塵不復來。 </div> </template> </Article> </div> </template> <script> import Article from './Article.vue' export default { components: {Article} } </script>
父級插槽使用子元件中的資料
Article 內容
<template> <div> 日期:2022-01-15 <slot v-bind:article="article"> <div>{{article.content1}}</div> </slot> </div> </template> <script> export default { data() { return { article: { content1: '從別後,憶相逢。幾回魂夢與君同', content2: '今宵剩把銀釭照,猶恐相逢是夢中' } } } } </script>
Learn 內容
<template> <div> <Article> </Article> <Article> <template v-slot:default="slotProps"> {{ slotProps.article.content2 }} </template> </Article> </div> </template> <script> import Article from './Article.vue' export default { components: {Article} } </script>
執行效果
看上下2個 Article 顯示的區別,上邊顯示的是 content1,下邊顯示的是 content2
上面程式碼 v-slot:default="slotProps" 可以簡寫成 v-slot="slotProps"
簡寫後的程式碼
<template> <div> <Article> </Article> <Article> <template v-slot="slotProps"> {{ slotProps.article.content2 }} </template> </Article> </div> </template> <script> import Article from './Article.vue' export default { components: {Article} } </script>
解構插槽 Prop
在支援的環境下 (單檔案元件或現代瀏覽器),可以使用 ES2015 解構傳入具體的插槽 prop
程式碼如下
<template> <div> <Article> </Article> <Article> <template v-slot="{article}"> {{ article.content2 }} </template> </Article> </div> </template> <script> import Article from './Article.vue' export default { components: {Article} } </script>
Article 內容
<template> <div> <slot name="title"></slot> 日期:2022-01-15 <slot name="content"></slot> </div> </template>
Learn 內容
<template> <div> <Article> <template v-slot:[dynamicSlotName]> <div>身無綵鳳雙飛翼,心有靈犀一點通</div> </template> </Article> <button @click="changeSlotName">改變插槽名</button> </div> </template> <script> import Article from './Article.vue' export default { components: {Article}, data() { return { dynamicSlotName: 'title' } }, methods: { changeSlotName() { this.dynamicSlotName = 'content' } } } </script>
執行效果
以上就是前端架構vue架構插槽slot使用教學的詳細內容,更多關於vue插槽slot教學的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45