@Nolan81
программист

Почему так странно работает наблюдение?

Приветствую.
Есть компонент:
<div id="app">
	<my-component> 
    </my-component>	
</div>


const MyComponent = {
	template: '<div>{{x}}<br>{{y}}</div>',
	data() {
		return {
		  x: '',
		  y: '',
		  isOk: false
		}
    },
	created(){
	    alert(this.isOk);
		this.x = 'x-first';
		this.y = 'y-first';
		alert(this.isOk);
		this.isOk = true;//теперь наблюдаем
	},
	watch: {
		x(){
			this.check();
		},
		y(){
			this.check();
		}
	},
	methods: {
		check(){
			alert('watch ' + this.isOk);
		}
	}
  };

В created я устанавливаю начальные значения св-вам.
Но мне надо также сечь их изменения, поэтому делаю наблюдение за ними.
Но вижу что когда в created присваиваю значения, наблюдение уже для них срабатывает.
Первый вопрос: Как в таких случаях поступать, как отключить наблюдение на время?

Я пробую сделать флагом, как в коде выше, по замыслу, сначала не наблюдаем(isOk: false), но так не работает, вывод дает такие алерты:
false
false
watch true
watch true

Т.е. срабатывает наблюдатель не сразу как присваиваешь значение, а когда то потом.
Второй вопрос: Почему так?
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы