- 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.
- 正在爆發的互聯網革命
- 互聯網安全的40個智慧洞見:2014年中國互聯網安全大會文集
- Learning Swift(Second Edition)
- 中國互聯網發展報告2018
- Microsoft Dynamics CRM 2011 Applications(MB2-868) Certification Guide
- Unity Artificial Intelligence Programming
- 紅藍攻防:構建實戰化網絡安全防御體系
- Hands-On Microservices with Node.js
- 網絡空間全球治理觀察
- 圖神經網絡前沿
- 區塊鏈技術與應用:打造分布式商業新生態
- 視聽變革:廣電的新媒體戰略
- CDN技術詳解
- 網絡是怎樣連接的
- Hands-On Full Stack Web Development with Aurelia