我们应该为Vue.js中的自定义表单组件使用本机输入事件吗?

Har*_*til 5 javascript vue.js vuejs2

考虑以下Vue.js代码:

<template>

    <form @input="doSomethingOnInput">

        <!-- Native form control -->
        <input v-model="title" type="text" />

        <!-- VUE.JS COMPONENT -->
        <!-- Custom form control -->
        <date-picker v-model="expiryDate"></date-picker>

        <!-- VUE.JS COMPONENT -->
        <!-- Another custom form control -->
        <color-picker v-model="badgeColor"></color-picker>

    </form>

</template>
Run Code Online (Sandbox Code Playgroud)

我有一个包含三个输入元素的表单。一个是本机输入元素,而其余两个是自定义输入元素。本机<input>激发input事件,使DOM树冒泡。

对于<date-picker><color-picker>本地input事件不会创建。但是,为了支持v-modelinput始终会触发自定义事件。现在,我知道如何input从这些自定义元素中触发本机事件。

问题是-我应该从这些自定义输入元素中触发本机输入事件吗? 作为可重用组件库的作者,我的用户可能想抓住input事件的顶部,即<form>我所展示的元素。 Vue.js是否建议这样做?并会引起任何无法预料的问题吗?