Vue计算属性
本节讲解 Vue 计算属性,计算属性就是通过其他数据算出一个新的数据,例如求一组数字的和、求平均数等都可以使用计算属性。
计算属性是 computed,它和 data、methods 平级,下面使用计算属性求一组数字的和,首先需要在 data 中声明数据,代码如下。
<template>
<div class="hello">
//3.调用计算属性
<h1>{{ getSum }}</h1>
</div>
</template>
<script>
export default {
name: "HelloWorld",
data() {
return { //1.声明num1、num2、num3
num1: 10,
num2: 20,
num3: 30
};
},
//2.在computed属性中创建计算属性
computed: {
getSum() {
return this.num1 + this.num2 + this.num3;
}
}
};
</script>
代码解析如下。
-
计算属性声明时是一个方法,并且必须有 return 返回值。
-
计算属性调用时不能是方法调用,而是普通的变量调用,所以直接使用
{{getSum}}
即可。
求平均数,代码如下。
computed: {
getSum() {
return this.num1 + this.num2 + this.num3;
},
getAvg() {
return this.getSum / 3;
}
}
视图层调用代码如下。
<h1>{{getAvg}}</h1>
代码解析如下。
可以直接调用其他计算属性,作为值使用。
案例:输入用户名和密码,改变按钮样式。
可以通过计算属性模拟用户登录,当用户输入用户名和密码时,登录按钮变色,代码如下。
<template>
<div class="hello">
<input type="text" v-model="user" />
<input type="text" v-model="password" />
//1.给登录按钮绑定样式
<input type="button" value="登录" :class="{bg: getActive}" />
</div>
</template>
<script>
export default {
name: "HelloWorld",
data() {
return {
user: "",
password: ""
};
},
computed: {
//2.声明计算属性,返回值为true或false
getActive() {
if (this.user == "" || this.password == "") {
return false;
}
return true;
}
}
};
</script>
<style scoped>
.bg {
background: red;
}
</style>
代码解析如下。
上述案例中,getActive 计算属性的返回值为 true 或 false,当为 true 时按钮的 bg 样式生效,当为 false 时按钮的 bg 样式隐藏。