javascript - Vue 3 事件命名约定让我感到困惑
问题描述
在我的父组件中,我有一个子组件:
<upsetting-moment-step
:this-step-number="1"
:current-step-number="currentStepNumber"
@showNextStep="showNextStep"
></upsetting-moment-step>
我的父组件也有这个方法:
methods: {
showNextStep() {
this.currentStepNumber++;
}
},
我从子组件中的按钮调用此事件:
<button type="button" class="btn btn-lg btn-primary" @click="showNextStep">Continue</button>
这是子组件方法:
methods: {
showNextStep() {
this.$emit('showNextStep');
}
},
现在这很好用,但我很困惑,因为当我使用@show-next-step
而不是@showNextStep
在子组件标签中时它停止工作。
根据文档,它应该可以工作,这也是推荐的方法。但是,它根本不起作用。
有趣的是,如果我将其更改为蛇盒,如果我使用this.$emit('show-next-step');
. 然而,这让我很困惑,因为我可以通过蛇盒传递我的道具,并通过骆驼盒在我的组件中使用它们。
难道我做错了什么?
解决方案
在您的组件upsetting-moment-step
中,您正在使用一个名为 的事件 @showNextStep
,@ - 表示它是一个事件。因此,要为事件运行一些操作,您需要先发出它(名称必须与组件中的名称相同。
this.$emit('showNextStep');
才能发出事件。一旦发出事件,直到您的代码,函数showNextStep
才会运行。
命名约定是使用 camelCase 编写 JS,使用 kebab-case 编写标签和事件。
推荐阅读
- django - s3boto 和预签名的 s3 url
- google-cloud-platform - 有什么方法可以让 GCP 服务帐户访问 GCS 存储桶中的特定文件夹?
- javascript - 在通过 Node 将结果转录到 Google Sheets API 之前,如何使用 Javascript 按 exceljs 中的列进行过滤
- ruby-on-rails - 依赖Rails数组的整数属性
- python - `plt.figure` 导致空输出
- java - 当我将用户发送到另一个活动时,它会一次又一次地重新加载到无穷无尽的时间
- blogger - 如何将我的博主帖子的特色图片关联为我网站中的缩略图
- javascript - 如何让我的 Discord 机器人 (Javascript) 对用户提出的特定问题回答随机数?
- sql-server - 将两个对应的过滤 SQL 查询合并为一个
- javascript - 在 Fotorama - Magento 2 产品页面添加自定义视频