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>