对element ui组件的二次封装

$attrs

$attrs 是一个内置属性,指父组件传递的、除了自己定义的 props 属性之外的所有属性。

.

$listeners

$listeners 包含了作用在这个组件上所有的监听器,即父组件绑定的全部监听事件,通过 v-on=“$listeners”,可以将这些事件绑定给它自己的子组件。

🌰:

  • Tabs.vue文件
<template>
  <el-tabs class="layout-tabs" v-bind="$attrs" v-on="$listeners">
    <slot v-for="(_, name) in $slots" :name="name" />
  </el-tabs>
</template>

<script>
export default {
  name: 'LayoutTabs',
  inheritAttrs: false,
};
</script>

<style lang="scss" scoped>
.layout-tabs :deep() {
  .el-tabs__nav-scroll {
    background: url("@/assets/drawer_images/tabs-bg.png") center / contain no-repeat;
    background-size: 100% 100%;
    padding: 0 15px;
  }

  .el-tabs__nav-wrap::after {
    display: none;
  }

  .el-tabs__item:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 32%;
    right: 0;
    height: 36%;
    width: 2px;
    background-color: #7aaada;
  }

  .el-tabs__active-bar {
    height: 14px;
    background-color: unset;
  }

  .el-tabs__active-bar::after {
    content: "◣";
    transform: rotateZ(-45deg);
    position: absolute;
    text-align: center;
    color: #38a0ff;
    width: 100%;
  }

  .el-tabs__content {
    padding: 0 15px;
  }
}
</style>
  • 使用:
<ElTabs>
	<el-tab-pane label="基础信息">
		<div>1</div>
	</el-tab-pane>
	<el-tab-pane label="基础内容">
		<div>2</div>
	</el-tab-pane>
</ElTabs>

import LayoutTabs from '@/components/Tabs.vue';

components: {
  ElTabs: LayoutTabs,
},
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值