目标:
封装my-input组件,继承a-input,额外加一些自己封装的内容,但是不影响a-input组件的插槽和属性
代码:
<template>
<div>
<a-input v-bind="attrs">
<template v-for="(value, name) in slots" #[name] = "slotData">
<slot :name="name" v-bind="slotData || {}"></slot>
</template>
</a-input>
</div>
</template>
<script setup lang="ts">
import { useAttrs, useSlots } from 'vue'
const slots = useSlots()
const attrs = useAttrs()
</script>
<style scoped lang="scss">
</style>
使用:
<my-input size="large">
<template #suffix>
456
</template>
</my-input>
效果
![](https://img.haomeiwen.com/i8410981/0fbc5d12a15aa3ae.png)
网友评论