<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        vue中slot(插槽)的介紹與使用

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:04:01
        文檔

        vue中slot(插槽)的介紹與使用

        vue中slot(插槽)的介紹與使用:什么是插槽? 插槽(Slot)是Vue提出來的一個概念,正如名字一樣,插槽用于決定將所攜帶的內(nèi)容,插入到指定的某個位置,從而使模板分塊,具有模塊化的特質(zhì)和更大的重用性。插槽顯不顯示、怎樣顯示是由父組件來控制的,而插槽在哪里顯示就由子組件來進行控制
        推薦度:
        導讀vue中slot(插槽)的介紹與使用:什么是插槽? 插槽(Slot)是Vue提出來的一個概念,正如名字一樣,插槽用于決定將所攜帶的內(nèi)容,插入到指定的某個位置,從而使模板分塊,具有模塊化的特質(zhì)和更大的重用性。插槽顯不顯示、怎樣顯示是由父組件來控制的,而插槽在哪里顯示就由子組件來進行控制

        什么是插槽?

        插槽(Slot)是Vue提出來的一個概念,正如名字一樣,插槽用于決定將所攜帶的內(nèi)容,插入到指定的某個位置,從而使模板分塊,具有模塊化的特質(zhì)和更大的重用性。插槽顯不顯示、怎樣顯示是由父組件來控制的,而插槽在哪里顯示就由子組件來進行控制

        Vue slot 原理

        在web-components中有slot的概念,https://developers.google.com/web/fundamentals/web-components/shadowdom。

        <slot> 元素

        Shadow DOM 使用 <slot> 元素將不同的 DOM 樹組合在一起。Slot 是組件內(nèi)部的占位符,用戶可以使用自己的標記來填充。

        通過定義一個或多個 slot,您可將外部標記引入到組件的 shadow DOM 中進行渲染。 這相當于您在說“在此處渲染用戶的標記”。

        注:Slot 是為網(wǎng)絡(luò)組件創(chuàng)建“聲明性 API”的一種方法。它們混入到用戶的 DOM 中,幫助對整個組件進行渲染,從而將不同的 DOM 樹組合在一起。

        怎么用插槽?

        默認插槽

        父組件

        <template>
         <div>
         我是父組件
         <slotOne1>
         <p style="color:red">我是父組件插槽內(nèi)容</p>
         </slotOne1>
         </div>
        </template>

        在父組件引用的子組件中寫入想要顯示的內(nèi)容(可以使用標簽,也可以不用)

        子組件(slotOne1)

        <template>
         <div class="slotOne1">
         <div>我是slotOne1組件</div>
         <slot></slot>
         </div>
        </template>

        在子組件中寫入slot,slot所在的位置就是父組件要顯示的內(nèi)容

        當然再父組件引用的子組件中也可以寫入其他組件

        父組件

        <template>
         <div>
         我是父組件
         <slotOne1>
         <p style="color:red">我是父組件插槽內(nèi)容</p>
         <slot-one2></slot-one2>
         </slotOne1>
         </div>
        </template>

        子組件(slotOne2)

        <template>
         <div class="slotOne2">
         我是slotOne2組件
         </div>
        </template>

        具名插槽

        子組件

        <template>
         <div class="slottwo">
         <div>slottwo</div>
         <slot name="header"></slot>
         <slot></slot>
         <slot name="footer"></slot>
         </div>
        </template>

        在子組件中定義了三個slot標簽,其中有兩個分別添加了name屬性header和footer

        父組件

        <template>
         <div>
         我是父組件
         <slot-two>
         <p>啦啦啦,啦啦啦,我是賣報的小行家</p>
         <template slot="header">
         <p>我是name為header的slot</p>
         </template>
         <p slot="footer">我是name為footer的slot</p>
         </slot-two>
         </div>
        </template>

        在父組件中使用template并寫入對應(yīng)的slot值來指定該內(nèi)容在子組件中現(xiàn)實的位置(當然也不用必須寫到template),沒有對應(yīng)值的其他內(nèi)容會被放到子組件中沒有添加name屬性的slot中

        插槽的默認內(nèi)容

        父組件

        <template>
         <div>
         我是父組件
         <slot-two></slot-two>
         </div>
        </template>

        子組件

        <template>
         <div class="slottwo">
         <slot>我不是賣報的小行家</slot>
         </div>
        </template>

        可以在子組件的slot標簽中寫入內(nèi)容,當父組件沒有寫入內(nèi)容時會顯示子組件的默認內(nèi)容,當父組件寫入內(nèi)容時,會替換子組件的默認內(nèi)容

        編譯作用域

        父組件

        <template>
         <div>
         我是父組件
         <slot-two>
         <p>{{name}}</p>
         </slot-two>
         </div>
        </template>
        <script>
        export default {
         data () {
         return {
         name: 'Jack'
         }
         }
        }
        </script>

        子組件

        <template>
         <div class="slottwo">
         <slot></slot>
         </div>
        </template>

        作用域插槽

        子組件

        <template>
         <div>
         我是作用域插槽的子組件
         <slot :data="user"></slot>
         </div>
        </template>
        
        <script>
        export default {
         name: 'slotthree',
         data () {
         return {
         user: [
         {name: 'Jack', sex: 'boy'},
         {name: 'Jone', sex: 'girl'},
         {name: 'Tom', sex: 'boy'}
         ]
         }
         }
        }
        </script>

        在子組件的slot標簽上綁定需要的值

        父組件

        <template>
         <div>
         我是作用域插槽
         <slot-three>
         <template slot-scope="user">
         <div v-for="item in user.data" :key="item.id">
         {{item}}
         </div>
         </template>
         </slot-three>
         </div>
        </template>

        在父組件上使用slot-scope屬性,user.data就是子組件傳過來的值

        總結(jié)

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        vue中slot(插槽)的介紹與使用

        vue中slot(插槽)的介紹與使用:什么是插槽? 插槽(Slot)是Vue提出來的一個概念,正如名字一樣,插槽用于決定將所攜帶的內(nèi)容,插入到指定的某個位置,從而使模板分塊,具有模塊化的特質(zhì)和更大的重用性。插槽顯不顯示、怎樣顯示是由父組件來控制的,而插槽在哪里顯示就由子組件來進行控制
        推薦度:
        標簽: 中的 VUE 里面的
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲色欲一区二区三区在线观看 | 亚洲精品无码乱码成人| 91在线亚洲精品专区| 野花香在线视频免费观看大全| 久99久精品免费视频热77| 2048亚洲精品国产| 国产免费一级高清淫曰本片 | 亚洲精品免费视频| 四虎影视大全免费入口| 亚洲视频在线观看网址| 国产又黄又爽又猛免费app| 最新亚洲精品国偷自产在线| 成人啪精品视频免费网站| 亚洲日本中文字幕天天更新| 热久久精品免费视频| 国产成人高清亚洲一区91| 国产一级做a爱免费视频| 国产日韩AV免费无码一区二区三区 | 99久久免费精品国产72精品九九| 日韩一级视频免费观看| 国产午夜亚洲精品不卡电影| 亚洲国产激情一区二区三区| 三级毛片在线免费观看| 亚洲高清日韩精品第一区| 成人激情免费视频| 免费无码午夜福利片| 久久青青草原亚洲AV无码麻豆| 丰满亚洲大尺度无码无码专线 | 一区免费在线观看| 亚洲精品成人无限看| 18级成人毛片免费观看| 亚洲欧美第一成人网站7777| 亚洲人成网站在线观看青青| 免费毛片a线观看| 亚洲精品无码久久久久秋霞| 国产自偷亚洲精品页65页| 久久精品免费一区二区| 男男gay做爽爽的视频免费| 亚洲va在线va天堂va四虎| 成年大片免费视频| 中文字幕免费在线看电影大全|