name1改变时,同时改变name2;name2改变时,同时改变name1
使用watch实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>使用watch实现</title>
<script src="../js/vue.js"></script>
</head>
<body>
<div id="app">
姓名1: <input type="text" v-model="name1"><br/><!--使用计算属性-->
姓名2: <input type="text" v-model="name2"><!--使用watch-->
</div>
<script>
const vm = new Vue({
el: '#app',
data: {
name1: '',
name2: ''
},
watch: {
// 使用watch监视name2,并更新name1的值
name2: function(newValue, oldValue){
this.name1 = newValue
},
// 使用watch监视name1,并更新name2的值
name1: function(newValue, oldValue){
this.name2 = newValue
}
}
})
</script>
</body>
</html>
使用计算属性的get和set实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>使用计算属性的get和set实现</title>
<script src="../js/vue.js"></script>
</head>
<body>
<div id="app">
姓名1: <input type="text" v-model="name1"><br/><!--使用计算属性-->
姓名2: <input type="text" v-model="name2"><!--使用watch-->
</div>
<script>
const vm = new Vue({
el: '#app',
data: {
name2: ''
},
computed: {// 使用计算属性计算name1的值,并更新name2的值
name1: {
get(){// name1的计算值
return this.name2
},
set(value){// name1改变时同时设置name2的值
this.name2 = value
}
}
},
})
</script>
</body>
</html>