【Vue】谁能给个element的tab标签页的标签下拉选项的demo,就是label-content的用法
element框架实现tabs切换,标签想加下拉列表,但是官方文档的label-content的属性是function,用法没有看明白。有没有demo可以参考。
回答
這個牽涉到 Render Function
的使用,所以會比較複雜點,可以看下官方文檔了解下:Render 函數
看完其實你大概也知道要怎麼做了, element
文檔沒寫特別清楚,不過文檔寫不清楚去看下源碼就一切明瞭了:
可以看到如果有設置 labelContent
屬性,就會使用其來渲染標題部分,並傳遞兩個參數給我們使用
h
=> 其實就是 render 函數裡面的 createElement ,所以可以調用其來渲染組件tab
=> 當前的 tab 實體
先搞個下拉式選單出來:
var select = Vue.extend({ template: `
<el-select @change="(v) => $emit('change', v)" v-model="value" placeholder="请选择">
<el-option
v-for="item in options"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
`,
data() {
return {
options: [{
value: '选项1',
label: '黄金糕'
}, {
value: '选项2',
label: '双皮奶'
}, {
value: '选项3',
label: '蚵仔煎'
}, {
value: '选项4',
label: '龙须面'
}, {
value: '选项5',
label: '北京烤鸭'
}],
value: ''
}
}
})
沒啥好講的,最重要的是記得要把事件繼續 emit
出來 : @change="(v) => $emit('change', v)"
那 tab 部分就可以這樣做 (懶得打直接 copy 官網的例子)
<el-tabs :active-name="activeName"> <el-tab-pane label="用户管理" :label-content="render" name="first">{{selected}}</el-tab-pane>
<el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
<el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
<el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane>
</el-tabs>
new Vue({ el: '#app',
data() {
return {
activeName: 'first',
selected: "",
}
},
methods: {
onTabSelected(value) {
this.selected = value
},
render(h, tabInstance) {
// h = createElement,上面有講過囉~
// select = 就是一開始定義的下拉式選單
return h(select, {
// 監聽事件 change
on: {
change: this.onTabSelected
}
})
}
},
})
實際例子
最后,一直麻烦官网的人,最后问题解决了,
https://github.com/ElemeFE/el...
大家有问题的都可以参考这篇帖子。。。
以上是 【Vue】谁能给个element的tab标签页的标签下拉选项的demo,就是label-content的用法 的全部内容, 来源链接: utcz.com/a/77573.html