iT邦幫忙

2021 iThome 鐵人賽

DAY 20
0
自我挑戰組

Vue.js系列 第 20

slots

  • 分享至 

  • xImage
  •  

前面我們介紹了component以及props今天我們要介紹的是slots

什麼是slots呢?它是利用slot的標籤去把父層的內容傳到子層,而Named Slots顧名思義就是有名字的slot,那為什麼我們需要去命名他呢?因為有時候我們會同時使用到很多個slot,如果他們每個都叫做<slot>父層就沒有辦法去辨別內容是要傳到哪裡了!

簡單來說我們就是利用slot先把要開的洞開好,在讓外面的資料插進來,在今天的範例中使用了4個slot,分別將他們命名為title, hours, minutes, seconds

那在今天的範例中有兩個時間,你會發現一個會即時更新時間一個只會停在開啟網頁的時間,這是為什麼呢?這是因為用了兩種function去寫的,要讓網頁的時間即時更新需要使用到setInterval的function,但是要特別注意的是因為setInterval是每秒鐘執行一次所以他會非常耗效能,所以在這種時後我們就需要使用到生命週期銷毀階段的beforeDestory的function去銷毀

介紹到這裡,你可能會想slots和props都是讓東西放進去到底差在哪裡呢?昨天我們說props是開一個固定格式的接口讓你放東西進去,而slots他雖然也是開一個洞給你,不過他不會管你要放什麼東西進去,最後用一台主機來總結一下component, props和slots,主機它就是我們的component,而props就是我們主機上的USB孔,你只能插入USB,但是slots它的洞裡面可以讓你放任何東西進去,像是滑鼠、眼鏡、手錶...各式各樣的東西

Demo
github


上一篇
props
下一篇
v-bind:is vs keep-alive
系列文
Vue.js30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言