欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > VUE_UI组件的二次封装

VUE_UI组件的二次封装

2025/5/17 3:26:25 来源:https://blog.csdn.net/weixin_44599931/article/details/147917106  浏览:    关键词:VUE_UI组件的二次封装

属性和事件

<template><div><myInput a="1" b="2" c="3" @change="() => {}"></myInput></div>
</template>

myInput.vue

<template><div><el-input v-bind="$attrs"></el-input></div>
</template><script>export default {// 已经申明的属性和事件在this.$attrs中无法获取props: ['a'],emits: ['change'],mounted() {// 获取所有属性和事件console.log(this.$attrs)}}
</script>

插槽

<template><div><myInput><template #prepend>prepend</template><template #append>after</template><template #suffix>suf</template><template #prefix>pre</template></myInput></div>
</template>

myInput.vue

<template><div><el-input><template v-for="(_, name) in $slots" #[name]="scopedData"><slot :name="name" v-bind="scopedData"></slot></template></el-input></div>
</template><script>export default {mounted() {// 获取所有插槽console.log(this.$slots)}}
</script>

ref

<template><div><myInput ref="inp"></myInput></div>
</template>
<script>export default {mounted() {// 获取myInput组件focus事件console.log(this.$refs.inp.focus)this.$refs.inp.focus()}}
</script>

myInput.vue

<template><div><el-input ref="elInp"></el-input></div>
</template><script>export default {mounted() {for (var key in this.$refs.elInp) {this[key] = this.$refs.elInp[key]}}}
</script>

.

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词