vue 组件事件

一、什么是组件事件

我们会发现有时候子组件需要与父组件进行交互,当子组件的事件被触发时,父组件可以相对应地做出处理。

二、触发事件

1、在组件的模板表达式中,可以直接使用 $emit 方法触发自定义事件 (例如:在 v-on 的处理函数中):


<!-- MyComponent -->
<button @click="$emit('someEvent')">click me</button>

2、$emit() 方法在组件实例上也同样以 this.$emit() 的形式可用:


export default {
  methods: {
    submit() {
      this.$emit('someEvent')
    }
  }
}

三、监听事件

父组件可以通过 v-on (缩写为 @) 来监听事件:


<MyComponent @some-event="callback" />

注意: 这里我们触发了一个以 camelCase 形式命名的事件,但在父组件中可以使用 kebab-case 形式来监听。与 prop 大小写格式一样,在模板中我们也推荐使用 kebab-case 形式来编写监听器。

四、事件参数

在触发事件时可以附带一个特定的值。

例:


<!-- 子组件 -->
<button @click="$emit('increaseBy', 1)">
  Increase by 1
</button>

<!-- 父组件1 箭头函数 -->
<MyButton @increase-by="(n) => count += n" />

<!-- 父组件2 方法 -->
<MyButton @increase-by="increaseCount" />

解释: 所有传入 $emit()额外参数都会被直接传向监听器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值