Görünüşe göre gerçek bir fark yok
React, bazı nedenlerden dolayı, Component.onChange
DOM element.oninput
olayına dinleyiciler ekler . Formlarla ilgili dokümanlardaki nota bakın:
React docs - Formlar
Bu davranışa şaşıran daha fazla insan var. Daha fazla ayrıntı için, React sorun izleyicisindeki bu konuya bakın:
React'in onChange ile onInput # 3964 arasındaki ilişkiyi belgeleyin
Bu konudaki yorumlardan alıntı yapın:
React'in neden onChange'in onInput gibi davranmasını seçtiğini anlamıyorum. Anladığım kadarıyla, eski onChange davranışını geri almanın bir yolu yok. Dokümanlar bunun bir "yanlış isim" olduğunu iddia ediyor, ancak bu gerçekten değil, bir değişiklik olduğunda, giriş de odağı yitirene kadar ateşleniyor.
Doğrulama için, bazen yazmayı bitirene kadar doğrulama hatalarını göstermek istemeyiz. Ya da belki her tuş vuruşunda yeniden render istemiyoruz. Şimdi bunu yapmanın tek yolu onBlur'dur, ancak şimdi değerin manuel olarak değiştiğini de kontrol etmemiz gerekiyor.
O kadar da önemli değil, ama bana öyle geliyor ki React yararlı bir olayı bir kenara attı ve zaten bunu yapan bir olay varken standart davranıştan saptı.
Yoruma% 100 katılıyorum ... Ama şimdi değiştirmenin çözdüğünden daha fazla sorun getireceğini tahmin ediyorum çünkü zaten bu davranışa dayanan çok fazla kod yazılmıştı.
React, resmi Web API koleksiyonunun bir parçası değildir
React, JS'nin üzerine inşa edilmiş ve büyük bir benimsenme oranı görmüş olsa da, çok sayıda işlevi kendi (oldukça küçük) API'si altında gizleyen bir React teknolojisi var. Bunun bariz olduğu alan olay sistemindedir, yüzey altında aslında standart DOM olay sisteminden radikal bir şekilde farklı olan çok şey vardır. Yalnızca hangi olayların ne yaptığı açısından değil, aynı zamanda verilerin olay işlemenin hangi aşamasında kalmasına izin verildiği açısından da. Buradan daha fazlasını okuyabilirsiniz:
React Olay Sistemi