FRAMEWORK » VUE
Watcher
Single-File Component (SFC)
Using watch
we can watch for changes in a variable.
Example of watching todoId
variable:
vue
<script>
export default {
data() {
return {
todoId: 1,
todoData: null
}
},
methods: {
async fetchData() {
this.todoData = null
const res = await fetch(
`https://jsonplaceholder.typicode.com/todos/${this.todoId}`
)
this.todoData = await res.json()
}
},
mounted() {
this.fetchData()
},
watch: {
todoId(newId) {
this.fetchData()
}
}
}
</script>
Whenever clicking the button increment the todoId
and show contents of todoData
:
vue
<template>
<p>Todo id: {{ todoId }}</p>
<button @click="todoId++">Fetch next todo</button>
<p v-if="!todoData">Loading...</p>
<pre v-else>{{ todoData }}</pre>
</template>