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

Vue中事件名的命名规范

Vue中事件名的命名规范

起因:

本人之前不太写vue的项目,最近接触了vue的代码,在学习的过程中同时也会伴随着一点疑惑。比如一以下面的父子组件的事件传递为例:

父组件:

显然,父组件有个自定义事件refresh-list需要子组件进行接收。

    <BusDevDealAfterBid
	  ...
      @refresh-list="queryList"
      ...
    />
子组件:
...
const emit = defineEmits(["refreshList"]);

...
// 触发事件
emit("refreshList");

我疑惑的点在于,这个事件命名父组件个子组件都不一致,这样可以正确的引用到吗?

结果是可以的。

原因:

不会出现接收不到的情况。在 Vue 中,事件名的命名规范有两种写法:

  1. kebab-case (短横线分隔):用在父组件的模板中,如 @refresh-list
  2. camelCase (驼峰式):用在子组件的 defineEmits 中,如 refreshList

Vue 会自动进行事件名的转换匹配,以下两种写法是等价的:

<!-- 父组件 -->
<BusDevDealAfterBid @refresh-list="queryList" />

<!-- 子组件 -->
```typescript
const emit = defineEmits(['refreshList']);  
// 或
const emit = defineEmits(['refresh-list']); 

实际使用时:

// 这三种调用方式都能触发父组件的 queryList 方法
emit('refreshList');
emit('refresh-list');
emit('RefreshList');

Vue 提供了这种灵活性是为了:

  1. 在模板中使用 kebab-case 更符合 HTML 的书写习惯
  2. 在 JavaScript 中使用 camelCase 更符合 JavaScript 的命名规范

所以不用担心事件名的大小写或分隔符问题,Vue 会自动处理这种转换。


http://www.kler.cn/a/552747.html

相关文章:

  • 打开多个chrome历史记录
  • IDEA中集成Maven
  • 一问读懂AI工具—DeepSeek、Kimi、豆包、文心一言、通义千问
  • 【C++】结构体排序+sort(),cmp()参数写法口诀
  • 社群共建与共享:以十点读书会为例探讨开源AI智能名片2+1链动模式S2B2C商城小程序的应用
  • 从C语言源码到可执行文件的生成过程通常包括
  • List<Map<String, Object>> 如何对某个字段求和
  • 25/2/18 <算法笔记> ByteTrack
  • 阿里云前端自动化部署流程指南
  • 《DeepSeek赋能工业互联网:解锁数据深度分析新姿势》
  • 【Elasticsearch】分页查询
  • Pycharm打开的jupyter notebook无法在pycharm中关闭怎么解决
  • el-table树状表格,默认展开第一个节点的每一层
  • 2024亚马逊数据分析!
  • lambda表达式thenComparing使用示例
  • Ubuntu 下创建具有 root 权限用户
  • Elasticsearch AI Assistant 集成 DeepSeek,1分钟搭建智能运维助手
  • 在nodejs中使用RabbitMQ(七)实现生产者确认
  • 私域流量运营中用户价值提升策略研究——以开源AI智能名片2+1链动模式与S2B2C商城小程序为例
  • 1-13 tortoiseGit忽略文件与文件夹