1.vue中数据监控的方法。当数据中某个属性的值发生变化,需要进行一些其他操作时,可以使用watch来监控该属性。当属性值改变时,执行回调函数处理相应的操作。当被监控的属性不是对象对象时。data:function(){return{num:0,};}watch:{num:function(newV,oldV){console.log('num从'+oldV+'变为'+newV);},}当监听器是object对象时,当对象中的属性值改变时不会触发回调函数,因为对象指向的地址没有改变,所以当监听器时有以下三种方法对象变化。要监视的用户对象。data:function(){return{user:{name:'zhangsan',age:23,},};}方法一:重新分配用户对象时,可以直接监听用户对象。watch:{user:function(newV,oldV){console.log('userchangedfrom'+oldV+'to'+newV);},}方法二:使用deep参数。使用deep需要使用完整形式watch:handler是一个监听回调函数,deep:true指定不仅要监听用户的变化,还要监听其内部属性的变化,所以handler可以在什么时候被触发user.name或user.age更改回调。watch:{counter:{//当用户或用户的属性发生变化时,将触发处理函数。处理程序:函数(newV){console.log(newV);},deep:true,}}比较方法一和方法二的优缺点,使用deep参数会增加对每一层数据的监控。当层数较深时,比较Costs性能。所以,一般来说,重赋值是比较好的方案,但是如果你只是想监控里面嵌套的某个属性的数据,重赋值就比较重了。下面介绍监控对象中某个属性的方法。方法三:监控object对象中的一个属性。watch:{user.name:function(newV,oldV){console.log('name属性从'+oldV+'变为'+newV);},user.age:function(newV,oldV){console.log('年龄属性从'+oldV+'变为'+newV);}}2。Angular中数据监控的方法。方法一:要监听angular的数据变化,可以使用钩子函数ngDoCheck来监听。exportclassTestComponentimplementsDoCheck{publicname='zhangsan';公共旧名称:字符串;constructor(){this.oldName=this.name;}ngDoCheck(){if(this.name!==this.oldName){控制台。log('名称已更改!');}}}这个钩子函数会在脏值检测发生时被调用。触发脏值检测的条件包括Dom事件、异步请求、Location变化事件等,所以会有大量的情况触发这个钩子函数,很少有因为数据修改而触发的调用,所以可能会出现性能问题.方法二:Angular在angular1中弃用了数据监控$watch方法,但是官方引入了rxJS来解决类似的数据监控需求。场景:在commonService中定义初始化语言'en',当语言切换时,在组件中监听并执行相应的操作。从commonService中的'rxjs'导入{BehaviorSubject};exportclassCommonService{//定义语言并设置初始语言'en'。公共语言=newBehaviorSubject
