- 每个计算属性都包含一个getter跟一个setter
当你没有set方法的时候那么你的计算属性就只有只读属性,不能被更改,set方法可以省略,当你计算属性设为只读属性的时候,get也可以省略。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<script src="./base/vue.js"></script>
<body>
<div id="app">
<input type="text" v-model="computedNum">
<p>{{msg}}</p>
</div>
</body>
<script>
new Vue({
el:"#app",
data:{
msg:"hello "
},
computed:{ //声明计算属性
computedNum(){
return this.msg
}
}
})
</script>
</html>
当你想要用以上方法更改输入框的值实现双向绑定更改p标签的值的时候,你会发现控制台会给你报错,说你的计算属性没有setter这个方法
那我们就需要用到setter这个方法
我们只需将里面计算属性那一部分更改为
computedNum:{
get(){
return this.msg
},
set(val){
this.msg = val
}
}
在set方法中将需要更改的值传递进去并且进行赋值操作再由get方法返回出去 就可以实现数据的双向绑定更改