// toast.test.js setTimeout(()=>{ closeButton.click() expect(callback).to.have.been.called done() },200)
代碼html
- 先考慮用戶怎麼用 ``` // elementUI的使用方法一 <g-tabs> <g-tabs-item label="美女"> <div> 美女相關諮詢 </div> </g-tabs-item> <g-tabs-item label="世界盃"> <div> 世界盃相關諮詢 </div> </g-tabs-item> </g-tabs> // elementUI的使用方法二,加icon // 這種使用方法有個問題,tab上加背景色沒辦法加 <g-tabs> <g-tabs-item slot="label"> <g-icon> 美女相關諮詢 </g-icon> </g-tabs-item> </g-tabs> // 咱們設計的使用方式,這種方式改背景色就很簡單直接在g-tabs-nav上添加就能夠了。 <g-tabs selected="tab1"> <g-tabs-nav> <g-tabs-item name="tab1"></g-tabs-item> <g-tabs-item name="tab2"></g-tabs-item> </g-tabs-nav> <g-tabs-content> <g-tabs-pane name="tab1"></g-tabs-pane> <g-tabs-pane name="tab2"></g-tabs-pane> </g-tabs-content> </g-tabs> ```
// tabs.vue // tabs-head // tabs-body // tabs-item // tabs-pane
// 這麼寫的緣由 <!-- <g-tabs selected="selectedTab" @update:selected="selectedTab = $event"> --> <!-- 這句話是語法糖徹底等價上面一句 --> <g-tabs :selected.sync="selectedTab"> <g-tabs-head> <g-tabs-item name="woman"> 美女 </g-tabs-item> </g-tabs-head> <g-tabs-body> <g-tabs-pane name="woman"> 美女相關諮詢 </g-tabs-pane> </g-tabs-body> </g-tabs>
// tabs.vue props: { selected: { type: String, required: true } }, direction: { type: String, default: 'horizontal', validator(value){ return ['horizontal', 'vertical'].indexOf(value) >= 0 } }, created(){ // this.$emit('update:selected','xxx') } // tabs-item.vue props: { disabled: { type: Boolean, default: false } } // 爲了實現右邊有個按鈕的功能 // tabs-head <div class="tabs-head"> <slot></slot> <slot name="actions"></slot> </div> // index.html <g-tabs :selected.sync="selectedTab"> <g-tabs-head> <template slot="actions"> <button>設置</button> </template> </g-tabs-head> </g-tabs>