当前位置: 首页 > news >正文

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>

.

相关文章:

  • GPT( Generative Pre-trained Transformer )模型:基于Transformer
  • React中的状态管理Dva总结
  • 理解 C# 中的各类指针
  • Android加固工具测评:易盾、顶象、360加固哪款更好用?
  • 【爬虫】DrissionPage-1
  • const char* 指向字符串数组和字符串的区别
  • 超声波传感器模块
  • llamafactory-记录一次消除模型随机性的成功过程
  • ElasticSearch深入解析(十一):分页
  • coze平台实现文生视频和图生视频(阿里云版)工作流
  • C++标准流详解:cin/cout的绑定机制与cerr/clog的缓冲差异
  • Landsat 5介绍
  • [超级简单]讲解如何用PHP实现LINE Pay API!
  • ELF文件详解
  • 解密企业级大模型智能体Agentic AI 关键技术:MCP、A2A、Reasoning LLMs- GPT源代码解析
  • 笔试强训(十七)
  • JMeter同步定时器 模拟多用户并发访问场景
  • Google Earth Engine(GEE) 代码详解:批量计算_年 NDVI 并导出(附 Landsat 8 数据处理全流程)
  • Matlab基于SSA-MVMD麻雀算法优化多元变分模态分解
  • Python爬虫实战:研究JavaScript 环境补全逆向解密
  • 哪种“网红减肥法”比较靠谱?医学专家和运动专家共同解答
  • 外交部:中方对美芬太尼反制仍然有效
  • 秦洪看盘|交易新逻辑,银行股成A股稳定器
  • 广州一饮品店取名“警茶”?市监局:取名没问题,但图像会产生误解
  • 做街坊们的“健康管家”,她把专科护理服务送上门
  • 社恐也能嗨起来,《孤独摇滚》千人观影齐舞荧光棒