Javascript 为什么Vue.js落后一个刻度?为什么我需要jQuery来获取当前值

Javascript 为什么Vue.js落后一个刻度?为什么我需要jQuery来获取当前值,javascript,jquery,vue.js,Javascript,Jquery,Vue.js,我有一个select元素 <select id="filter" v-model="filter" @change="changeFilter"> <option value="all">All</option> <option value="one">One</option> <option value="two">Two</option> <option value="three">Thr

我有一个select元素

<select id="filter" v-model="filter" @change="changeFilter">
 <option value="all">All</option>
 <option value="one">One</option>
 <option value="two">Two</option>
 <option value="three">Three</option>
</select>
}

为什么我必须使用Jquery来获取这个元素的最新值?
我以为Vue.js应该是反应型的?为什么它落后一个刻度呢??为什么我必须使用jQuery来获取当前选择的内容?这样做似乎非常违反直觉?

您的错误是执行双向绑定加上事件。该事件与模型更新同时触发,因此更改尚未发布

你最好在这里用手表

首先,删除事件:

<select id="filter" v-model="filter">
 <option value="all">All</option>
 <option value="one">One</option>
 <option value="two">Two</option>
 <option value="three">Three</option>
</select>

此处的更多信息:

您的错误是执行双向绑定加上事件。该事件与模型更新同时触发,因此更改尚未发布

你最好在这里用手表

首先,删除事件:

<select id="filter" v-model="filter">
 <option value="all">All</option>
 <option value="one">One</option>
 <option value="two">Two</option>
 <option value="three">Three</option>
</select>
更多信息请点击此处:

我只是在复制你的代码,但它完全可以正常工作

检查以下代码:

newvue({
el:“应用程序”,
数据:{
过滤器:“全部”
},
方法:{
changeFilter:function(){
警报(此.filter)
}
}
})

全部的
一个
两个
三
我只是在复制你的代码,但它完全可以正常工作

检查以下代码:

newvue({
el:“应用程序”,
数据:{
过滤器:“全部”
},
方法:{
changeFilter:function(){
警报(此.filter)
}
}
})

全部的
一个
两个
三

希望这是有意义的。希望这是有意义的。他们在这里有一个很好的解释:如果有理由需要在处理程序中使用
Vue.nextTick()
而不仅仅是对数据更改做出反应,那么可以使用
Vue.nextTick()
如果有理由,您需要在处理程序中执行此操作,而不仅仅是对数据更改做出反应。
watch: {
    filter: function (val) {
      // use val here
    }
}