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

ui组件二次封装(vue)

组件二次封装的意义

  • 保证一个系统中ui风格和功能的一致性
  • 便于维护

从属性、事件、插槽、ref这几方面考虑

  • 属性和事件的处理:ui组件上绑定$attrs(v-model本质也是一个属性加一个事件,所以也在其列)

在自定义组件中打印$attrs:父组件传递过来的所有属性和事件 - 自定义组件本身定义的属性和事件。

  • 插槽的处理:循环$slots设置ui组件插槽,并定义同名自定义组件插槽

在自定义组件中打印$slots:父组件中设置的插槽对象(键值对)

  • ref的处理(如果在自定义组件上使用ref,大概率是想用ui组件里的方法)

将ui组件实例的所有属性都放到自定义组件上

完整例子

子组件:
<template><el-input ref="elInput" v-bind="$attrs"><template v-for="(_, name) in $slots" #[name]= "scopeData"><slot :name="name" v-bind="scopeData"></slot></template></el-input>
</template>
mounted() {for (const key in this.$refs.elInput) {this[key] = this.$refs.elInput[key]}
}
----------------------------------------------------
父组件:
<my-input ref="wrapRef" v-model="inputVal" maxlength="5"><template #prefix>prefix</template>
</my-input>
data() {return {inputVal: '123'}
},
mounted() {this.$refs.wrapRef.focus()
}
http://www.xdnf.cn/news/5170.html

相关文章:

  • PyTorch API 7 - TorchScript、hub、矩阵、打包、profile
  • 互联网大厂Java求职面试:基于RAG的智能问答系统设计与实现-2
  • 如何删除网上下载的资源后面的文字
  • AI生成视频推荐
  • ragflow报错:KeyError: ‘\n “序号“‘
  • 【Linux学习笔记】系统文件IO之重定向原理分析
  • 第七章 数据库编程
  • 数据链共享:从印巴空战到工业控制的跨越性应用
  • 右值引用的剖析
  • 通俗易懂版知识点:Keepalived + LVS + Web + NFS 高可用集群到底是干什么的?
  • 【数据结构】——栈
  • C++中的static_cast:类型转换的安全卫士
  • VUE CLI - 使用VUE脚手架创建前端项目工程
  • 【Qwen3_ 4b lora xinli 】 task完成实践记录
  • 11.多用组合和少继承
  • 通俗易懂的方式解释“帧”和“报文”。帧和报文在不同网络层次中的作用。
  • Navicat 17最新保姆级安装教程(附安装包+永久使用方法)
  • R1-Omni
  • 纷析云开源财务软件:企业敏捷迭代的生态化赋能平台
  • Science | “打结”的光
  • NextDenovo2.5.2安装与使用-生信工具53
  • Edwards爱德华STP泵软件用于操作和监控涡轮分子泵
  • openEuler会议回放服务正式上线,高效检索一键定位
  • Quorum协议原理与应用详解
  • 功能需求、业务需求、用户需求的区别与联系
  • vue知识点总结 依赖注入 动态组件 异步加载
  • 21.java反序列化-弹出控制面板
  • 按位段拼接十六进制
  • 算法专题五:位运算
  • 高级3D建模软件 Agisoft Metashape Professional 激活版资源免费下载