Vue自定义的组件@click失效

  • Post author:
  • Post category:vue


Vue自定义的组件@click失效



错误示例

<template>
  <div>
    <Buttom text="确定" @click="handler()"></Buttom>
    <input type="button" @click="handler()" value="确定" />
  </div>
</template>

import { Component, Prop, Vue } from "vue-property-decorator";
import Buttom from "@/components/buttom/Buttom.vue";//自定义组件
@Component({ name: "", components: { Buttom } })
export default class index extends Vue {
  handler() {
    alert("提示");
  }
}



描述

** 调用自定义组件上绑定的@click=“handler()” 事件不成功**



正确示例

<template>
  <div>
    <Buttom text="确定" @click.native="handler()"></Buttom>
    <input type="button" @click="handler()" value="确定" />
  </div>
</template>

import { Component, Prop, Vue } from "vue-property-decorator";
import Buttom from "@/components/buttom/Buttom.vue";//自定义组件
@Component({ name: "", components: { Buttom } })
export default class index extends Vue {
  handler() {
    alert("提示");
  }
}



解释


如果你想在某个组件的根元素上绑定事件,直接使用 @click=”handler()”是没法调用到原生onclick事件,所以vue提供了native 修饰符,通过native可以直接监听组件根元素的原生事件,我们可以添加native修饰符来实现click事件例如: @click.native=“handler()”,



版权声明:本文为qq_34492913原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。