Как следить за уровнем данных Vue
Когда мы разрабатываем наши компоненты, часто бывает нужно следить за уровнем данных. В тот момент, когда меняется какой-то ключ на этом уровне данных, выполнять какие-то действия.
Здесь у нас есть несколько вариантов, как мы можем решить эту задачу. Стандартный вариант, который мы уже с вами знаем, мы можем воспользоваться методами и навешать каждый метод на все элементы за которыми мы хотим следить.
Например, у нас есть ключ number на уровне данных
<template>
<div>
<input v-model="number">
</div>
</template>
<script>
export default {
name: "mainVue",
data() {
return {
number: 1
}
}
}
</script>
Внутри методов, допустим, у нас есть какие-то действия, которые изменяют number. Нам придётся писать эту логику для события change для input
<input v-model="number" @change="...">
и в каких-то других методах. Появляются некие сложности.
Альтернатива событиям и методам. Watch.
Во vue есть элегантное решение, как вы можете упростить эту задачу слежки за состоянием какого-то ключа на уровне данных.
Для этого во Vue есть специальная опция, которая называется watch.
watch - это "следить" переводится с английского. Её задача следить за состоянием какого-то ключа и в момент того, когда это состояние будет меняться, оно будет выполнять какой-то набор действий.
Как это работает? Мы должны с вами в нашем компоненте прописать отдельный ключ, который называется watch. Пишется он также, как методы.
Watch двоеточие и здесь мы пишем наши watchers. Watchers представляет собой название ключа, за которым мы хотим следить.
watch: {
number(val1, val2) {}
}
Если ключ у нас называется number, то мы здесь точно также пишем number.
watcher принимает несколько значений val1 и val2.
Давайте посмотрим, что будет в каждом из этих ключей. Давайте change уберём чтобы он нам не мешался и я попробую теперь поменять значение для нашего текстового поля.
Первым аргументом у нас приходит в watch новое значение, а вторым аргументом приходит старое значение, которое было у ключа до этого.
Итого будет:
number(valNew, valOld) {}
Если вам нужно выполнять какие-то действия в зависимости от того, какое было старое значение, вы тоже можете это с помощью watcher отследить. Что не позволит вам реализовать такое же при использования, допустим методов для отслеживания.
Преимущество watch
Вот такой полезный инструмент, который позволяет следить за любым ключом, который у нас есть на уровне данных и выполнять какой-то набор действий.
Самое важное, что мы можем видеть и новое и старое значение, которое было для нашего ключа за которым мы следим и это добавляет гибкость.
Часто watch используются для сохранения данных формах. Позже мы посмотрим пример того, как это а выглядит, как можно для веб-форм использовать watch более удобно, чтобы следить за их изменением. Такая полезная опция watch. Имейте её в виду и используйте в своей работе.
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Email - зарегистрироваться / войти