1.轻度监视
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<style>
</style>
<script src="vue.js"></script>
<script>
window.onload=function(){
var vm=new Vue({
el:'#box',
data:{
a:111,
b:2
}
});
vm.$watch('a',function(){
alert('发生变化了');
this.b=this.a+100;
});
document.onclick=function(){
vm.a=1;
};
};
</script>
</head>
<body>
<div id="box">
{{a}}
<br>
{{b}}
</div>
</body>
</html>
初始状态:
点击完后:
2.深度监视:deep:true
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<style>
</style>
<script src="vue.js"></script>
<script>
window.onload=function(){
var vm=new Vue({
el:'#box',
data:{
json:{name:'strive',age:16},
b:2
}
});
vm.$watch('json',function(){
alert('发生变化了');
},{deep:true});
document.onclick=function(){
vm.json.name='aaa';
};
};
</script>
</head>
<body>
<div id="box">
{{json | json}}
<br>
{{b}}
</div>
</body>
</html>

本文通过两个示例详细介绍了Vue.js中的数据监听机制,包括轻度监视与深度监视的概念及其实现方式。轻度监视适用于基本类型的数据变化跟踪,而深度监视则能够捕捉到复杂对象内部属性的变化。

345

被折叠的 条评论
为什么被折叠?



