当前位置:   article > 正文

el-tabs(标签栏)的入门学习_el-tab-pane

el-tab-pane

el-tabs(标签栏)的入门学习
适用场景
与导航栏相似,项目中常见的是点击某个导航栏,主页面(el-main)模块的最上方会显示我们的标签栏集合,点击不同的导航栏,标签栏会在不断追加,若点击到标签集合中已存在,就进入选中指定的标签栏,显示页面

知识点

  1. el-tabs嵌套el-tab-pane使用
  2. el-tabs的v-model对应el-tab-pane的name
  3. el-tabs的type可以指定为card,border-card
  4. el-tab-pane的label为显示的标签内容,标签的内容在首尾标签内部
  5. el-tabs可以设置closable,editable,addable,分别设置tab-remove,edit,tab-add动态修改标签集合
  6. 还有tab-click钩子
  7. el-tabs中设置tab-position,修改标签位置,可以为top,bottom,left,right

效果图

代码 

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  8. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  9. <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  10. </head>
  11. <body>
  12. <div id='app'>
  13. <el-tabs v-model='tabPaneName' @tab-click='handleClick'>
  14. <el-tab-pane v-for='tab in tabs' :key='tab.name+"1"' :name='tab.name' :label='tab.label'>{{tab.content}}
  15. </el-tab-pane>
  16. </el-tabs>
  17. <el-tabs v-model='tabPaneName' type='card' closable @tab-remove='handleRemove'>
  18. <el-tab-pane v-for='tab in tabs' :key='tab.name+"2"' :name='tab.name' :label='tab.label'>{{tab.content}}
  19. </el-tab-pane>
  20. </el-tabs>
  21. <el-tabs v-model='tabPaneName' type='border-card' editable @edit='handleEdit'>
  22. <el-tab-pane v-for='tab in tabs' :key='tab.name+"3"' :name='tab.name' :label='tab.label'>{{tab.content}}
  23. </el-tab-pane>
  24. </el-tabs>
  25. <el-radio-group v-model='position'>
  26. <el-radio label='top'>top</el-radio>
  27. <el-radio label='bottom'>bottom</el-radio>
  28. <el-radio label='left'>left</el-radio>
  29. <el-radio label='right'>right</el-radio>
  30. </el-radio-group>
  31. <el-tabs v-model='tabPaneName' type='border-card' :tab-position='position'>
  32. <el-tab-pane v-for='tab in tabs' :key='tab.name+"3"' :name='tab.name' >
  33. <template slot='label'>
  34. <i class='el-icon-search'></i>{{tab.label}}
  35. </template>
  36. {{tab.content}}
  37. </el-tab-pane>
  38. </el-tabs>
  39. </div>
  40. </body>
  41. </html>
  42. <script>
  43. new Vue({
  44. el: "#app",
  45. data() {
  46. return {
  47. position: '',
  48. tabPaneName: 'first',
  49. tabs: [{ name: 'first', label: '首页', content: '欢迎光临' },
  50. { name: 'second', label: '菜单', content: '有小炒,火锅,烧烤' },
  51. { name: 'third', label: '饮料', content: '杨枝甘露,冰糖雪梨' },
  52. { name: 'fouth', label: '部门', content: '餐饮,财经' }]
  53. }
  54. },
  55. methods: {
  56. //点击钩子
  57. handleClick(target, action) {
  58. console.log(target.name, action)
  59. },
  60. //删除钩子
  61. handleRemove(targetName) {
  62. this.tabs.forEach((item, index) => {
  63. if (item.name === targetName) {
  64. this.tabs.splice(index, 1)
  65. }
  66. });
  67. },
  68. //编辑钩子
  69. handleEdit(targetName, action) {
  70. if (action === 'remove') {
  71. this.tabs.forEach((item, index) => {
  72. if (item.name === targetName) {
  73. this.tabs.splice(index, 1)
  74. }
  75. })
  76. } else if (action === 'add') {
  77. let addItem = {
  78. name: "newName" + this.tabs.length,
  79. label: "newLabel" + this.tabs.length,
  80. content: "newContent" + this.tabs.length
  81. }
  82. this.tabs.push(addItem)
  83. }
  84. }
  85. }
  86. })
  87. </script>

官网

el-tabs的入门学习

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/581727
推荐阅读
相关标签
  

闽ICP备14008679号