JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.3.5/knockout.mapping.js"></script>
<div data-bind="foreach: ObservableArray, updateBinding: ObservableArray">
    <span data-bind="text: Value"></span>
</div>

JavaScript

ko.bindingHandlers['updateBinding'] = {
    init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
        console.log("Binding Handler (Init)");
    },
    update: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
        console.log("Binding Handler (Update)");
        var data = ko.utils.unwrapObservable(valueAccessor());
    }
};

function MainViewModel() {
    var self = this;
    
    self.ObservableArray = ko.observableArray();
}

var viewModel = new MainViewModel();

// Fires Init + Update for ObservableArray
ko.applyBindings(viewModel);

// Setting directly fires Update for ObservableArray once
viewModel.ObservableArray([{ "Value": "Lucky Luke" }]);

// Setting via mapping fires Update for ObservableArray twice
ko.mapping.fromJS({ "ObservableArray": [{ "Value": "Ludwig van Beethoven" }] }, {}, viewModel);