VueJS watch отрабатывает дважды

194
09 декабря 2017, 09:52

К примеру есть несколько свойств и вотчер который отслеживает изменение в одном из них, вроде этого

Vue.component('Test', {
    props: {
        type: {
            type: String,
            default: 'one'
        },
        items: {
            type: Array,
            default: function() {
                return [];
            }
        }
    },
    watch: {
        items: function(newVal, oldVal) {
            console.log(newVal);
            console.log(oldVal);
            // this.type = 'two';
        }

Все хорошо, все работает как надо. Но если в этом вотчере изменить другое свойство вотчер который следит за изменениями в items отработает дважды. Т.е. если мы отслеживаем изменение в одном свойстве и пытаемся изменить в нем другое, то отслеживаемый вотчер также отработает с тем что изменили "внутри", как-то так...

Vue.component('Test', { 
    props: {
        type: {
            type: String,
            default: 'one'
        },
        items: {
            type: Array,
            default: function() {
                return [];
            }
        }
    },
    watch: {
        items: function(newVal, oldVal) {
            console.log(newVal); // получили вывод в консоли два раза
            console.log(oldVal); // получили вывод в консоли два раза
            this.type = 'two'; // изменили свойство type
        }

Почему ? Что я не так делаю ? Как сделать правильно ?

READ ALSO
Формирование модального окна

Формирование модального окна

Здравствуйте, есть вызов модального окна в attachmenttpl cms DLE Как сделать чтобы при вызове фон размывался и затемнялся?

243
Vue 2 + Babel + Browserify + Gulp

Vue 2 + Babel + Browserify + Gulp

Пробовал много разных вариантов собрать проект Vue с помощью Gulp в связке с Browserify и Babel

309
Не открывается модальное окно из react-bootstrap

Не открывается модальное окно из react-bootstrap

В консоли видно что при нажатии на кнопку props обновляются, например:

269
Не выполняет мой js в bitrix

Не выполняет мой js в bitrix

Доброго времяни сутокПодскажите пожалуйста почему мой js код не обрабатывается Bitrix`сом

309