Я решил проблему по адресу: https://jsfiddle.net/pc7y2kwg/2/
Насколько я могу судить, событие нажатия вызывается даже событиями клавиатуры ( src )
И происходит до событий @change или @input ( src )
Таким образом, вы можете нажать кнопку.предотвратить событие, но вам нужно либо выборочно предотвратить его, либо повторно запустить событие после вычисления.
//HTML Template
<input :checked="calculatedValue5" @click="correctAnswer" type="checkbox">
//VUE component
data() {
return {
calculatedValue5: false,
};
},
methods: {
correctAnswer(e){
const newDomValue = e.target.checked;
this.calculatedValue5 = this._calculateNewValue(newDomValue);
if(this.calculatedValue5 !== newDomValue){
e.preventDefault();
}
}
}
Я думаю, что это препятствует обновлению значения флажка перед значением данных, что, по-видимому, нарушает реактивность. Я не уверен, что техническая причина, но демо работает