<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • Vue--》動態組件和插槽的使用講解

          2023-1-6    前端達人

          目錄

          動態組件

          keep-alive使用

          keep-alive的include和exclude屬性

          插槽


          動態組件

          動態組件指的是動態切換組件的顯示與隱藏,vue提供了一個內置的<component>組件,專門用來實現動態組件的渲染。什么意思呢?接著往下看:

          那么內置的<component>組件是什么情況呢?component 是可以作為標簽使用的,其作用組件的占位符。當然其作為標簽直接使用是會報錯的,還需要搭配屬性值 is ,其表示要渲染的組件的名字。如下:

          那么如何去動態的切換組件呢?寫一個簡單的button按鈕實現即可,如下:

          keep-alive使用

          當我們動態的去創建組件時,這一點和 v-if 很相似,改變組件會直接將改變之前的組件的數據銷毀掉。如下:

          我們給Left組件設置 +1 按鈕,來表示其數據:

          用生命周期函數來監聽組件的創建和銷毀:

          那我們如何在動態創建組件的同時還能暴露組件之前的數據呢?這里就需要借助keep-alive。

          keep-alive對應的生命周期函數

          當組件被緩存時,會自動觸發組件的deactivated生命周期函數。

          當組件被激活時,會自動觸發組件的activated生命周期函數。

           
                  
          1. created(){
          2. console.log('Left組件被"創建"了');
          3. },
          4. destroyed(){
          5. console.log('Left組件被"銷毀"了');
          6. },
          7. // 當組件第一次被創建的時候,既會創建created生命周期,也會執行activated生命周期
          8. // 當組件被激活時,只會觸發activated生命周期,不再觸發created。因為組件沒有被重新創建
          9. activated(){
          10. console.log('組件被激活了,activated');
          11. },
          12. deactivated() {
          13. console.log('組件被緩存了,deactivated');
          14. },

          keep-alive的include和exclude屬性

          include屬性用來指定:只有名稱匹配的組件會被緩存。多個組件名之間使用英文的逗號分隔:

          exclude屬性用來指定:只有名稱匹配的組件“不“會被緩存。多個組件名之間使用英文的逗號分隔:

          插槽

          插槽Slot)是 vue 為組件的封裝者提供的能力。允許開發者在封裝組件時,把不確定的、希望由用戶指定的部分定義為插槽。其操作如下:

          vue官方規定:每一個slot插槽,都要有一個name名稱,如果省略了slot的name屬性,則有一個默認名稱叫做 default ,默認情況下,在使用組件的時候,提供的內容都會被填充到名字為default的插槽之中。

          如果要把內容填充到指定名稱的插槽中,需要使用 v-slot:這個指令,v-slot:后面要跟上插槽的名字,注意:v-slot:指令不能直接用在元素身上,必須用在template標簽上。當然這個指令也是有簡寫形式:# 即可。template:這個標簽是一個虛擬標簽,只其到包裹性質的作用,不會被渲染為任何實質性的 html 元素。

          后備內容:封裝組件時,可以為預留的<slot>插槽提供后備內容(默認內容)。如果組件的使用者沒有為插槽提供任何內容,則后備內容會生效。

          作用域插槽:在封裝組件時,為預留的<slot>提供屬性對應的值。如下:

          當然上面的作用域插槽數據明顯是寫死了,那么可以將數據動態存儲在data里面嗎?答案是可以的

          文章知識點與官方知識檔案匹配,可進一步學習相關知識





            來源:csdn



          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請加微信ban_lanlan,報下信息,藍小助會請您入群。歡迎您加入噢~~

          希望得到建議咨詢、商務合作,也請與我們聯系01063334945。 



          分享此文一切功德,皆悉回向給文章原作者及眾讀者. 免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。 



          藍藍設計m.sdgs6788.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務UI設計公司、界面設計公司、UI設計服務公司、數據可視化設計公司、UI交互設計公司、高端網站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司

          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://m.sdgs6788.com

          存檔

          99久久精品免费看国产免费| 一97日本道伊人久久综合影院| 波多野结衣中文字幕久久 | 精品久久久久久久| 久久精品国产99久久久香蕉| 久久人人爽人人爽人人爽| 日本免费久久久久久久网站| 久久精品国产亚洲7777| 久久精品国产亚洲77777| 91精品国产综合久久四虎久久无码一级 | 久久婷婷成人综合色综合| 久久久青草青青亚洲国产免观| 亚洲va久久久久| 国产激情久久久久影院小草| 日韩精品久久无码中文字幕| 久久精品国产一区二区电影| 久久久久亚洲AV无码永不| 人人妻久久人人澡人人爽人人精品| 好久久免费视频高清| 久久精品一本到99热免费| 亚洲国产婷婷香蕉久久久久久| 88久久精品无码一区二区毛片 | 亚洲а∨天堂久久精品9966| 久久97精品久久久久久久不卡| 国产精品久久久久蜜芽| 性高朝久久久久久久久久| 久久99精品国产麻豆不卡| 久久99精品国产99久久6男男| 久久精品99久久香蕉国产色戒| 亚洲国产精品无码久久SM| 国产精品一区二区久久精品涩爱| 四虎亚洲国产成人久久精品| 国产亚州精品女人久久久久久 | 精品久久久久久无码人妻热| 国产激情久久久久影院小草 | 少妇人妻88久久中文字幕| 中文精品久久久久人妻不卡| 人人妻久久人人澡人人爽人人精品| 国产成人综合久久精品红| 国产精品成人久久久| 看久久久久久a级毛片|