1. event(自定义事件):
(1). 点击事件:
# 子组件:
<template>
<button @click="handleClick"> // click事件,是在组件内部的<button>元素上声明的.
<slot></slot>
</button>
</template>
<script>
export default {
methods: {
handleClick (event) {
this.$emit('on-click', event);
}
}
}
</script>
(2). 父组件方案一($emit触发自定义事件):
<i-button @on-click="handleClick"></i-button>
注:
①. 通过$emit触发自定义的事件on-click,在父级通过@on-click来监听.
(3). 方案二(在父级声明,为了区分原生事件和自定义事件,要用到事件修饰符.native):
<i-button @click.native="handleClick"></i-button>
注:
①. 如果不写.native修饰符,那上面的@click就是自定义事件click,而非原生事件click.
②. 在组件内只触发了on-click事件,而不是click,所以直接写@click会监听不到.