• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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 匿名、具名和作用域插槽的使用方法

    來源:懂視網 責編:小采 時間:2020-11-27 21:58:21
    文檔

    詳解Vue 匿名、具名和作用域插槽的使用方法

    詳解Vue 匿名、具名和作用域插槽的使用方法:Vue 中的插槽在開發組件的過程中其實是非常重要并且好用的。Vue 的插槽也沒有說很難使用,這篇文章簡明扼要的介紹了三種插槽的用法。 匿名插槽 子組件定義 slot 插槽,但并未具名,因此也可以說是默認插槽。只要在父元素中插入的內容,默認加入到這個插槽中去
    推薦度:
    導讀詳解Vue 匿名、具名和作用域插槽的使用方法:Vue 中的插槽在開發組件的過程中其實是非常重要并且好用的。Vue 的插槽也沒有說很難使用,這篇文章簡明扼要的介紹了三種插槽的用法。 匿名插槽 子組件定義 slot 插槽,但并未具名,因此也可以說是默認插槽。只要在父元素中插入的內容,默認加入到這個插槽中去

    Vue 中的插槽在開發組件的過程中其實是非常重要并且好用的。Vue 的插槽也沒有說很難使用,這篇文章簡明扼要的介紹了三種插槽的用法。

    匿名插槽

    子組件定義 slot 插槽,但并未具名,因此也可以說是默認插槽。只要在父元素中插入的內容,默認加入到這個插槽中去。 😵

    <template>
     <div>
     hello <slot>陌生人</slot>
     </div>
    </template>

    這里定義了一個默認插槽,只要往里頭丟東西,就會被加入到這個插槽里面

    slot 元素里面可以加入一系列后備內容,一旦父元素沒有插入任何信息,那么就會渲染后備內容。

    <my-comp>
     oli
    </my-comp>

    如在父組件中使用這個子組件,并插入 oli 字符串,效果如下:

    具名插槽

    具名插槽可以出現在不同的地方,不限制出現的次數。只要匹配了 name 那么這些內容就會被插入到這個 name 的插槽中去。

    <template>
     <div>
     <slot name="nav"></slot>
     <br/>
     <slot name="content"></slot>
     <br/>
     <slot name="footer"></slot>
     </div>
    </template>

    比如上述代碼定義了三個具名插槽。在父組件中即可使用 slot 屬性插入到對應的插槽中:

    <template>
     <div>
     <my-comp>
     <template slot="nav">navigator</template>
     <template slot="footer">footer</template>
     <template slot="content">content</template>
     </my-comp>
     </div>
    </template>

    另外,順序并不重要,content 在 footer 下方但依然能夠按照 slot 定義的順序渲染:

    作用域插槽

    通常情況下普通的插槽是父組件使用插槽過程中傳入東西決定了插槽的內容。但有時我們需要獲取到子組件提供的一些數據,那么作用域插槽就排上用場了。 🤓

    在子組件中創建 slot 并通過 v-bind 綁定數據 prop 的形式傳入數據:

    <slot :data="data"></slot>

    在組件 data 中創建數據:

    export default {
     name: 'MyComp',
     data () {
     return {
     data: { // 內部狀態
     username: 'oli'
     }
     }
     }
    }

    這樣就可以在插槽中訪問到子元素的數據了:

    <template v-slot:default="user">{{user.data.username}}</template>

    也可以不書寫 default 關鍵字,默認就是假定對應默認插槽

    <template v-slot="user">{{user.data.username}}</template>
    

    使用 v-slot 綁定一個命名空間 user,這樣就可以通過 user 對象引用到子組件中傳入的數據了

    與具名插槽配合時,需要明確書寫對應的命名空間:

    <template #:one="user">{{user.data.username}}</template>
    <template #:another="user">{{user.data.username}}</template>
    # 代表 v-slot 的縮寫,縮寫在有參數的情況下才會生效

    動態插槽名

    另外,2.6 版本的 vue 還加入了動態插槽名的功能,用來動態的定義插槽名稱:

    <template #:[dynamicSlotName]></template>

    https://cn.vuejs.org/v2/guide...

    PS:Vue作用域插槽使用實例詳解

    這次給大家帶來Vue作用域插槽使用詳解,Vue作用域插槽使用的注意事項有哪些,下面就是實戰案例,一起來看一下。

    舉個例子,比如我寫了一個可以實現條紋相間的列表組件,發布后,使用者可以自定義每一行的內容或樣式(普通的slot就可以完成這個工作)。而作用域插槽的關鍵之處就在于,父組件能接收來自子組件的slot傳遞過來的參數,具體看案例和注釋。

    <!DOCTYPE html>
     <htmllang="en">
     <head>
     <metacharset="UTF-8">
     <title>Vue作用域插槽</title>
     <scriptsrc="https://cdn.bootcss.com/vue/2.3.4/vue.js"></script>
     </head>
     <body>
     <pid="app2">
     <my-stripe-list:items="users"odd-bgcolor="#D3DCE6"even-bgcolor="#E5E9F2">
     <!-- props對象接收來自子組件slot的$index參數 -->
     <templateslot="cont"scope="props">
     <span>{{users[props.$index].id}}</span>
     <span>{{users[props.$index].name}}</span>
     <span>{{users[props.$index].age}}</span>
     <!-- 這里可以自定[編輯][刪除]按鈕的鏈接和樣式 -->
     <a:href="'#edit/id/'+users[props.$index].id"rel="external nofollow">編輯</a>
     <a:href="'#del/id/'+users[props.$index].id"rel="external nofollow">刪除</a>
     </template>
     </my-stripe-list>
     </p>
     <script>
     Vue.component('my-stripe-list', {
     /*slot的$index可以傳遞到父組件中*/
     template: `
     <p>
     <pv-for="(item, index) in items"style="line-height:2.2;":style="index % 2 === 0 ? 'background:'+oddBgcolor : 'background:'+evenBgcolor">
     <slotname="cont":$index="index"></slot>
     </p>
     </p>
     `,
     props: {
     items: Array,
     oddBgcolor: String,
     evenBgcolor: String
     }
     });
     new Vue({
     el: '#app2',
     data: {
     users: [
     {id: 1, name: '張三', age: 20},
     {id: 2, name: '李四', age: 22},
     {id: 3, name: '王五', age: 27},
     {id: 4, name: '張龍', age: 27},
     {id: 5, name: '趙虎', age: 27}
     ]
     }
     });
     </script>
     </body>
    </html>

    總結

    以上所述是小編給大家介紹的Vue 匿名、具名和作用域插槽的使用方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
    如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

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

    文檔

    詳解Vue 匿名、具名和作用域插槽的使用方法

    詳解Vue 匿名、具名和作用域插槽的使用方法:Vue 中的插槽在開發組件的過程中其實是非常重要并且好用的。Vue 的插槽也沒有說很難使用,這篇文章簡明扼要的介紹了三種插槽的用法。 匿名插槽 子組件定義 slot 插槽,但并未具名,因此也可以說是默認插槽。只要在父元素中插入的內容,默認加入到這個插槽中去
    推薦度:
    標簽: 使用 VUE 匿名
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久精品夜色噜噜亚洲A∨| 3D动漫精品啪啪一区二区下载| 亚洲国产精品无码成人片久久| 久久精品中文字幕一区| 国内精品伊人久久久久av一坑| 久久99热只有频精品8| 国内少妇偷人精品视频免费| 欧美精品丝袜久久久中文字幕 | 亚洲国产精品国产自在在线| 亚洲福利精品电影在线观看| 国产精品部在线观看| 免费精品国产自产拍在线观看| 欧美日韩精品一区二区在线播放| AAA级久久久精品无码区| 91久久精品国产成人久久| 无夜精品久久久久久| 色妞ww精品视频7777| 国产成人精品白浆久久69| 伊人精品久久久久7777| 国产精品露脸国语对白| 欧美亚洲国产精品第一页| 精品午夜福利在线观看| 亚洲国产精品va在线播放| 亚洲国产综合精品一区在线播放| 精品一久久香蕉国产线看播放 | 久草视频在线这里精品| 国产小呦泬泬99精品| 亚洲AV无码久久精品狠狠爱浪潮| 久久精品一区二区三区中文字幕| 精品国产呦系列在线观看免费 | 精品水蜜桃久久久久久久| 成人国产一区二区三区精品| 一本久久a久久精品综合夜夜| 欧美日韩精品久久久久| 精品国产免费一区二区三区| 国产午夜精品理论片久久| 久久丫精品国产亚洲av不卡| 中文字幕成人精品久久不卡| 精品福利一区二区三| 色综合久久精品中文字幕首页| 日本精品不卡视频|