JSFiddle - React, Tailwind, and code Playground

HTML

<h1>ko 2.2.0 with suppressNoChangeExtender</h1>
<p>click in the input field and press arrow down...</p> <p><strong>write occurs</strong></p>
<input data-bind="value: query, valueUpdate: 'afterkeydown'"/>
<div data-bind="text: query"></div>

JavaScript

ko.extenders.suppressNoChange= function(target) {
        var result = ko.computed({
            read: target,
            write: function(newValue) {
                
                var current = target();
                if (newValue!== current) {
                    target(newValue);
                }
            }
        });
        result(target());
        return result;
    };
var model=function(){
    var self=this;
    this.backingField = ko.observable("");
    this.query = ko.computed({read:function(){
        return self.backingField();
    },write:function(v){
        alert("write");
        self.backingField(v);
    }})
        .extend({suppressNoChange:null});
}
    
var m=new model();

ko.applyBindings(m);