element-ui tab页的内容如何自定义

链接:
http://element-cn.eleme.io/#/...

今天看elment-ui的tab组件,
示例代码如下:

<template>
  <el-tabs v-model="activeName" @tab-click="handleClick">
    <el-tab-pane label="用户管理" name="first">用户管理</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>
</template>

界面效果:

clipboard.png

很好奇,tab页的内容是怎么来的,然后查看dom元素,发现页面会增加content内容:

clipboard.png

el-tabs__content 这个类应该是element-ui源码里面生成的,请问如果要自定义tab页的内容要怎么做呢?谢谢

阅读 14.8k
2 个回答

直接在<el-tab-pane></el-tab-pane>中写你自己的代码就好,不知道能否满足你的需求。

 <el-tabs v-model="activeName" @tab-click="handleClick">
    <el-tab-pane label="用户管理" name="first">
      <div>
        <h1 style="color: red">
        自定义tab内容
        </h1>
      </div>
    </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>

<template>

<el-tabs v-model="activeName" @tab-click="handleClick">
    <el-tab-pane label="用户管理" name="first" >
        <!-- <router-view></router-view> -->
        <!--父组件传递值给子组件 props关键字 -->
        <user :msg="message"></user>
    </el-tab-pane>
    <el-tab-pane label="配置管理" name="second" >
        <deploy @msgFunc="func"></deploy>
        <!-- <router-view name="second"></router-view> -->
    </el-tab-pane>
    <el-tab-pane label="角色管理" name="third" >
        <!-- <router-view name="third"></router-view> -->
        <user :msg="message"></user>
    </el-tab-pane>
    <el-tab-pane label="定时任务补偿" name="fourth" >
         <deploy :msg="message"></deploy>
        <!-- <router-view name="fourth"></router-view> -->
    </el-tab-pane>
 </el-tabs>

</template>
<script>
import user from './page/User'
import deploy from './page/Deploy'
export default {

data(){
    return {
       activeName:'first',
       message:'father message'
    }
},
components:{
    user,
    deploy
},
methods:{
    handleClick(tab, event){
        console.log(tab, event);
    },
    func(msg){
        console.log(msg);
    }
}

}
</script>

建议使用加载子组件的方式完成切换效果

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题