native概念:
对于原生的html标签会有一些原生事件。
例如:
click:点击事件
focus: 获取焦点事件
blur:失去焦点事件
dragstart:开始拖动元素时候触发
…
当我们在使用原生js写的时候,就可以直接给标签加上相关事件。
但是对于组件标签来说,是不可以直接去使用这些原生事件的。
那有什么方法呢?那就是使用.native修饰符来帮忙。
类似于:
<el-button>
@dragstart.native="dragStart(item, true)"
</el-button>
但是又有问题是,明明click也是原生事件,为什么el-button在绑定点击事件的时候,直接可以使用,不用.native呢??是因为在elment文档上的click事件都已经被封装过了,所以可以直接使用。
贴源码:
@click="handleClick"
handleCick(evt) {
this.$emit('click', evt);
}
但是没有被封装过的原生事件,就要使用native修饰符。
给el-button加上可拖拽功能
<el-button
draggable="true" //(draggable 属性规定元素是否可拖动。)
@dragstart.native="dragStart({value, label: name}, true)" //(拖动开始事件)
@dragend.native="dragEnd"//(拖动结束事件)
type="primary"
></el-button>