@AndrewRusinas

Можно ли игнорировать срабатывание watch при инициализации компонента без введения дополнительных переменных?

Привет!

data() {
        return {
            some_value: null
        }
    },
    watch: {
        some_value(value) {
            // code
        }
    },
    mounted() {
        getAsyncData() 
    },
    methods: {
        async getAsyncData() {
            this.some_value = await api.getSomeValue()
        }
    }


Стандартный компонент vue, при инициализации ожидаемо сработает вотчер - переменная изменилась с null на полученное значение. Есть ли способ, чтобы он не срабатывал при инициализации? Если решение только с помощью отдельной переменной (if (notTheFirstTime) { // code }), то был бы рад, если бы кто-то подсказал, как в таких случаях принято эти переменные называть.

Необходимо игнорировать первый вызов потому, что после изменения отслеживаемого значения через debounce вызывается метод сохранения данных. Делать запрос на получение и затем второй на обновление крайне неразумно.
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 1
0xD34F
@0xD34F Куратор тега Vue.js
Запускайте наблюдение после получения данных:

async created() {
  await this.getAsyncData();
  this.$watch('some_value', value => {
    ...
  });
},
Ответ написан
Ваш ответ на вопрос

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

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