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

封装element-plus的组件暴露原生属性和方法

文章目录

  • 问题:
  • 解决方案:

问题:

正常封装element-plus的组件例如el-select,如果不处理下,会导致在具体页面使用时候,传递el-select原生属性和方法,在封装的组件内获取不到。

解决方案:

在封装组件时候,使用v-bind="$attrs" v-on="proxyEvents"接收属性和方法

  <div>$attrs:{{ $attrs }}</div>
  <el-select v-bind="$attrs" v-on="proxyEvents" style="width: 100%">
      <el-option v-for="item in list" :key="item[valueKey]" :label="item[labelKey]" :value="item[valueKey]" />
  </el-select>


	// 属性处理
	const attrs = useAttrs() // 获取绑定值就是attrs.modelValue
	
	// 事件代理
	const proxyEvents = computed(() => {
	  const { on } = attrs
	  return Object.keys(on || {}).reduce((acc: Record<string, any>, key) => {
	    acc[key] = (...args: any[]) => (on as any)[key](...args)
	    return acc
	  }, {})
	})

使用组件时候,就按照原生的el-select方式传递属性和方法即可
v-model:绑定值
v-model:otherVal :其他绑定值

    <MyScrollSelect
      @change="change"
      @focus="focus2"
      v-model="form.id"
      v-model:otherVal="form.name"
      placeholder="滚动加载或搜索-单选"
      clearable
      filterable
    />

相关文章:

  • MultiPost--多平台博客发布工具
  • 【大语言模型_5】xinference部署embedding模型和rerank模型
  • Hyperlane:Rust 语言打造的 Web 后端框架新标杆
  • MySQL意向锁我该怎么理解?
  • 自然语言处理(2)—— NLP之百年风雨路
  • 第七次作业,网络防御高级
  • 适配iOS 18:检测并移除三方库中的 bitcode 部分
  • 大数据学习(70)-大数据调度工具对比
  • Trae IDE 介绍与使用教程
  • 大模型架构记录6-推荐算法
  • leetcode29. 两数相除-medium
  • TSB - AD 解读 — 迈向可靠、透明的 TSAD 任务
  • Power Apps 技术分享:画布应用使用表单控件
  • 接入层、汇聚层 和 核心层
  • WebRTC 介绍
  • PyQt6内嵌http.server Web 和Flask Web服务器方法详解
  • 【java零碎知识点】------返回值类型的大小排序
  • Java概述
  • cesium 实现万级管网数据渲染,及pickImageryLayerFeatures原生方法改写
  • 模型蒸馏实战qwen2.5系列模型
  • 上海优化营商环境再攻坚,企业和机构有哪些切实感受?
  • 2025上海科技节将于5月17日开幕,拟设6大板块专题活动
  • 以军总参谋长:已进入“决定性打击计划的第二阶段”
  • 美联储如期按兵不动,强调“失业率和通胀上升的风险均已上升”(声明全文)
  • 数据中心业务今年预增50%,丹佛斯:中国是全球最重要的市场
  • 【社论】三个“靠谱”为市场注入确定性