Açısal
Açısal kurulumlar veri bağlayan iki "izleyici" mevcut olduğunda (bu bir basitleştirmedir)
//js
$scope.name = 'test';
$timeout(function() { $scope.name = 'another' }, 1000);
$timeout(function() { console.log($scope.name); }, 5000);
<!-- html --->
<input ng-model="name" />
Giriş ile başlayacak test
, ardından another
1000 ms olarak güncellenecektir . $scope.name
Denetleyici kodundan veya girişi değiştirerek yapılan herhangi bir değişiklik , 4000 ms sonra konsol günlüğüne yansıtılacaktır. Değişiklikler <input />
yansıtılır $scope.name
beri, otomatik özelliği ng-model
setleri yukarı giriş ve bildirebilmesi saatler $scope
değişikliklerin. Koddaki değişiklikler ve HTML'deki değişiklikler iki yönlü bağlamadır . ( Bu kemana bir bak )
Tepki
React, HTML'nin bileşeni değiştirmesine izin veren bir mekanizmaya sahip değildir. HTML yalnızca bileşenin yanıt verdiği olayları oluşturabilir. Tipik bir örnek kullanmaktır onChange
.
//js
render() {
return <input value={this.state.value} onChange={this.handleChange} />
}
handleChange(e) {
this.setState({value: e.target.value});
}
Değerinin değeri tamamen işlev tarafından <input />
kontrol edilir . Bu değeri güncellemenin tek yolu , React bileşen yöntemiyle ayarlanan bir olayın eklenmesiyle gerçekleştirilen bileşenin kendisidir . O değişiklik yapamazsınız böylece bileşenler devlete doğrudan erişime sahip olurlar ve gelmez. Bu tek yönlü bağlayıcıdır . (Bu kod parçasına göz atın )render
onChange
<input />
this.state.value
setState
<input />