【问题标题】:Why does Vue's v-model update the data much more later after the click event was fired?为什么 Vue 的 v-model 会在 click 事件触发后更晚更新数据?
【发布时间】:2020-07-05 05:19:46
【问题描述】:

我有一个非常小的复选框组件,我试图通过 @click 事件来收听它。但是 v-model 数据比事件回调晚 7ms 更新。所以我不得不删除 @click 监听器并添加一个计算属性/检查值的方法,并为其添加一个监视方法来 $emit 更新的检查值。这种方式效果很好。但我只想了解幕后发生的事情。有人可以解释吗?或者也许参考网络上的一个好的资源?

我在 Vue 的源代码中也找不到 v-model 方法。在 node_modules 中哪里可以找到与 v-model 相关的代码?

【问题讨论】:

    标签: vue.js vuejs2 vue-component v-model vue-directives


    【解决方案1】:

    您应该尝试改用@change,然后打印出来进行测试。例如:

    <input 
         type="checkbox" 
         v-model="item" 
         @change="sendEvent"
    />
    
    sendEvent () {
         this.$emit('click', this.item);
    },
    

    【讨论】:

    • 嘿,谢谢。我赞成你的回答。但我更想知道为什么会出现延迟以及 v-model 内部如何工作以及在哪里可以找到所有相关函数,以便我可以观察该过程并更好地理解它。
    • 嗯,你可以去的最好的资源是官方文档和了解生命周期:vuejs.org/v2/guide/instance.html
    • 我知道生命周期过程和文档。我想更多地了解 vue.js 的内部与 v-model 相关的内容,即源代码级别的内容。但是当我在 node_modules 中搜索 v-model 时,乍一看没有任何意义。
    猜你喜欢
    • 2016-01-20
    • 2022-11-03
    • 2018-06-01
    • 2016-11-12
    • 2021-04-05
    • 1970-01-01
    • 2014-04-16
    • 2016-04-15
    • 1970-01-01
    相关资源
    最近更新 更多