watch 监视 比较大小
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<h3>比较大小</h3>
<span>a:</span>
<input type="text" v-model="a" />
<span>b:</span>
<input type="text" v-model="b" />
<h3>结果:{{result}}</h3>
</div>
<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript">
const vm = new Vue(
{
el: "#app",
data: {
a: 0,
b: 0,
result: ""
},
watch:{
a:{
immediate:true,
handler( newValue,oldValue ){
let rs = this.a - this.b;
if( rs < 0){
this.result = "a < b";
}else if( rs > 0 ){
this.result = "a > b";
}else {
this.result = "a = b"
}
}
},
b:{
immediate:true,
handler( newValue,oldValue ){
let rs = this.a - this.b;
if( rs < 0){
this.result = "a < b";
}else if( rs > 0 ){
this.result = "a > b";
}else {
this.result = "a = b"
}
}
}
}
}
);
</script>
</body>
</html>
计算属性 比较大小
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<h3>比较大小</h3>
<span>a:</span>
<input type="text" v-model="a" />
<span>b:</span>
<input type="text" v-model="b" />
<h3>结果:{{result}}</h3>
</div>
<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript">
const vm = new Vue(
{
el: "#app",
data: {
a: 0,
b: 0,
},
computed:{
result:{
get(){
let rs = this.a - this.b;
if( rs < 0){
return "a < b";
}else if( rs > 0 ){
return "a > b";
}else {
return "a = b";
}
},
set(val){}
}
}
}
);
</script>
</body>
</html>
computed 代码更简洁
异步需求 只能使用watch