vue之.native修饰符

.native 修饰符就是用来注册元素的原生事件而不是组件自定义事件的

 

比如:自定义 Button.vue 组件

<template>
  <button type="button" @click="clickHandler"><slot /></button>
</template>
export default {
  name: 'button',
  methods: {
    clickHandler () {
      this.$emit('vclick') // 触发 `vclick` 事件
    }
  }
}

引用 Button.vue 组件

<vButton @click="clickHandler" @vclick="vClickHandler">按钮</vButton>
import vButton from '@/components/Button'
export default {
  components: { vButton },
  methods: {
    clickHandler () {
      alert('onclick') // 此处不会执行 因为组件中未定义 `click` 事件
    },
    vClickHandler () {
      alert('onvclick') // 触发 `vclick` 自定义事件
    }
  }
}

如果将上面模版改成如下方式,那么两个事件都会执行。

<vButton @click.native="clickHandler" @vclick="vClickHandler">按钮</vButton>

 

所以, .native 修饰符就是用来注册元素的原生事件而不是组件自定义事件的。

 

 

 

 

 


posted @ 2019-01-03 18:18  CatherLee  阅读(890)  评论(0编辑  收藏  举报