- Vue.js 2 Design Patterns and Best Practices
- Paul Halliday
- 260字
- 2021-06-24 18:33:10
Watched properties
Computed properties are not always the answer to our reactive data problems, sometimes we need to create our own custom watched properties. Computed properties can only be synchronous, must be pure (for example, no observed side-effects), and return a value; this is in direct contrast to a watched property, which is often used to deal with asynchronous data.
A watched property allows us to reactively execute a function whenever a piece of data changes. This means that we can call a function every time an item from our data object changes, and we'll have access to this changed value as a parameter. Let's take a look at this with a simple example:
<template>
<div>
<input type="number" v-model="id" />
<p>Name: {{user.name}}</p>
<p>Email: {{user.email}}</p>
<p>Id: {{user.id}}</p>
</div>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {
id: '',
user: {}
}
},
methods: {
getDataForUser() {
axios.get(`https://jsonplaceholder.typicode.com/users/${this.id}`)
.then(res => this.user = res.data);
}
},
watch: {
id() {
this.getDataForUser();
}
}
}
</script>
In this example, any time our text box changes with a new id (1-10), we get information about that particular user, like so:

This is effectively watching for any changes on the id and calling the getDataForUser method, retrieving new data about this user.
Although watched properties do have a lot of power, the benefits of computed properties on performance and ease of use should not be understated; therefore wherever possible, favor computed properties over watched properties.
- 數據通信網絡實踐:基礎知識與交換機技術
- 物聯網檢驗檢測技術
- 物聯網關鍵技術及應用
- SD-WAN架構與技術(第2版)
- 面向云平臺的物聯網多源異構信息融合方法
- Yii Application Development Cookbook(Second Edition)
- Mastering TypeScript 3
- CCNP TSHOOT(642-832)認證考試指南
- The Kubernetes Workshop
- 搶占下一個智能風口:移動物聯網
- 端到端QoS網絡設計
- 無線傳感器網絡定位技術
- 移動物聯網:商業模式+案例分析+應用實戰
- 想象的互動:網絡人際傳播中的印象形成
- Hands-On Cloud:Native Microservices with Jakarta EE