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

UniApp Vue3事件适配与兼容方案

1. Vue2 与 Vue3 事件机制的核心区别

  • Vue2

    • 通过 this.$emit('event') 触发自定义事件,父组件用 @event 监听。

    • .native 修饰符用于监听原生 DOM 事件(如 @click.native)。

  • Vue3

    • 移除 .native,改为通过 emits 选项声明自定义事件。

    • 未声明的事件监听器 会作为原生事件绑定到组件的根元素(通过 $attrs),可能导致意外行为。


2. 不注册 emits 的影响

未声明的事件 会被当作原生事件处理,绑定到根元素。
问题示例

<!-- 子组件未声明 emits: ['click'] -->
<template><button @click="$emit('click')">按钮</button>
</template><!-- 父组件 -->
<Child @click="handleClick" />

点击按钮会触发 两次 handleClick

  1. 子组件 $emit('click') 触发的自定义事件。

  2. 根元素的原生 click 事件(因未声明 emits@click 被绑定到根元素)。


3. 适配方

http://www.xdnf.cn/news/6144.html

相关文章:

  • python 练习 五
  • IIS服务器URL重写配置完整教程
  • MySQL视图:虚拟表的强大功能与应用实践
  • 国产化环境下的 DICOM 网络服务与影像处理适配
  • Yolov8的详解与实战-深度学习目标检测
  • 关于vue学习的经常性错误
  • KUKA库卡焊接机器人智能气阀
  • 亚远景-对ASPICE评估体系的深入研究与分析
  • ConfigMap 和 Secret 是否支持热更新
  • 系统单元测试和项目打包
  • Jmeter -- JDBC驱动连接数据库超详细指南
  • 东莞文件服务器存储维修-DELL MD3400电池故障
  • C++学习细节回顾(汇总二)
  • 基于Spring AI与Hugging Face TGI构建高效聊天应用:从配置到实践全解析
  • centos中postfix的作用
  • 用git下载vcpkg时出现Connection was reset时的处理
  • SpringBoot集成Kafka
  • Python × CARLA:如何在自动驾驶仿真世界里打造智能驾驶系统?
  • ansible进阶02
  • vivado原语
  • AI编程:使用Trae + Claude生成原型图,提示词分享
  • 一次因校时服务器异常引起的性能差异分析
  • 浏览器相关
  • React Native矢量图标全攻略:从入门到自定义iconfont的高级玩法
  • 深入浅出 IPFS 在 DApps 和 NFT 中的应用:以 Pinata 实战为例
  • Java 框架配置自动化:告别冗长的 XML 与 YAML 文件
  • 科普:影像空间分辨率
  • 院校机试刷题第二天:1479 01字符串、1701非素数个数
  • spring-cloud-stream学习
  • elasticdump备份恢复