Кутовий
Коли кутовий параметр встановлює прив'язку даних, існують два "спостерігачі" (це спрощення)
//js
$scope.name = 'test';
$timeout(function() { $scope.name = 'another' }, 1000);
$timeout(function() { console.log($scope.name); }, 5000);
<!-- html --->
<input ng-model="name" />
Вхід розпочнеться з test
, потім оновиться до another
1000мс. Будь-які зміни $scope.name
, або з коду контролера, або шляхом зміни входу, будуть відображені в журналі консолі 4000 мс пізніше. Зміни на значення <input />
відображаються у $scope.name
властивості автоматично, оскільки ng-model
налаштування спостерігає за введенням та повідомляє $scope
про зміни. Зміни в коді та зміни в HTML є двостороннім обов'язковим . (Ознайомтеся з цією загадкою )
Реагуйте
У React немає механізму, який дозволить HTML змінювати компонент. HTML може викликати лише події, на які компонент відповідає. Типовим прикладом є використання onChange
.
//js
render() {
return <input value={this.state.value} onChange={this.handleChange} />
}
handleChange(e) {
this.setState({value: e.target.value});
}
Значенням <input />
управляється повністю з допомогою render
функції. Єдиний спосіб оновити це значення від самого компонента, яка здійснюється шляхом приєднання onChange
події до <input />
який встановлює , this.state.value
щоб за допомогою методу React компонента setState
. <input />
Не має прямий доступ до стану компонентів, і тому він не може вносити зміни. Це одностороння прив'язка . (Ознайомтеся з цим кодовим кодом )