您的位置:

详解el-tab-pane隐藏

一、基础使用



   
<script>
export default {
  data() {
    return {
      activeTab: 'Tab 1'
    };
  }
};
</script>

el-tab-pane是element-ui中的标签页组件,可以将多个标签页组织在一起,实现快速切换不同的内容。使用起来非常简单,我们只需要在el-tabs标签中加入el-tab-pane标签并设置其label属性(用于显示标签页名称),内容则设置在标签的内部。

在上述代码中,我们展示了如何使用el-tab-pane实现基本的标签页布局。在el-tabs组件中,我们通过v-model绑定数据activeTab来控制当前处于哪一个标签页。可以看到,在初始状态下,第一个标签页处于激活状态。

二、动态生成标签页



   
<script>
export default {
  data() {
    return {
      activeTab: '',
      tabs: [
        { name: 'Tab 1', content: 'Content of Tab Pane 1' },
        { name: 'Tab 2', content: 'Content of Tab Pane 2' },
        { name: 'Tab 3', content: 'Content of Tab Pane 3' }
      ]
    };
  }
};
</script>

有时候,我们需要在程序运行期间动态生成标签页。这时,我们可以使用v-for指令配合el-tab-pane标签来动态生成标签页。在上述代码中,我们定义了一个名为tabs的数组,其中存放了每个标签页的标签名和内容,通过v-for指令遍历这个数组,生成对应的标签页。

需要注意的是,我们为el-tab-pane设置了:key属性,该属性用于提高列表的渲染效率。在遍历时,若没有为每个标签页设置:key属性,则Vue在每次重新渲染时无法确定哪些标签页被更改或删除,因此会强制重新渲染每个标签页,降低渲染效率。

三、自定义标签页头部



   
<script>
export default {
  data() {
    return {
      activeTab: '',
      tabs: [
        { name: 'Tab 1', content: 'Content of Tab Pane 1' },
        { name: 'Tab 2', content: 'Content of Tab Pane 2' },
        { name: 'Tab 3', content: 'Content of Tab Pane 3' }
      ]
    };
  },
  methods:{
    showDialog(item){
      this.$message({
        message: '您正在查看' + item.name + '的详细信息',
        type: 'info'
      });
    }
  }
};
</script>

通过更改el-tab-pane的插槽内容,我们可以实现自定义标签页头部的效果。在上述代码中,我们在el-tab-pane中设置了一个按钮,并为该按钮绑定了一个click事件。在单击该按钮时,会触发一个消息提示框,告知用户正在查看当前标签页的详细信息。

需要注意的是,在上述代码中,我们为el-tabs组件设置了type属性,该属性用于定义标签页的类型。在这里,我们将type设置为card,表明该标签页采用卡片式布局。

四、动态隐藏标签页



   
<script>
export default {
  data() {
    return {
      activeTab: 'Tab 1',
      showTab1: true,
      showTab2: true,
      showTab3: true
    };
  },
  mounted(){
    setTimeout(() => {
      this.showTab2 = false;
    }, 3000);
  }
};
</script>

通过控制el-tab-pane标签的v-if属性,我们可以动态隐藏标签页。在上述代码中,我们为每个标签页设置了一个show属性,当show为true时,相应的标签页会显示出来,当show为false时,则会被隐藏。通过此方式,我们可以根据需要动态控制标签页的显示状态。

为了演示动态隐藏标签页的效果,我们在mounted钩子中设定了一个延迟函数,用于在页面加载时隐藏第二个标签页。在3秒钟后,则会显示出来。