Кутовий
Коли кутовий параметр встановлює прив'язку даних, існують два "спостерігачі" (це спрощення)
//js
$scope.name = 'test';
$timeout(function() { $scope.name = 'another' }, 1000);
$timeout(function() { console.log($scope.name); }, 5000);
<!-- html --->
<input ng-model="name" />
Вхід розпочнеться з test, потім оновиться до another1000мс. Будь-які зміни $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 />Не має прямий доступ до стану компонентів, і тому він не може вносити зміни. Це одностороння прив'язка . (Ознайомтеся з цим кодовим кодом )