Vue----computed中set函数的参数问题

  var vm=new Vue({     el:'#box',     data:{       a:1     },     computed:{       b:{        get:function(){          return this.a+2;        },        set:function(val){          this.a=val;        }       }     }   });   document.onclick=function(){     vm.b=10;   };

上面的函数,点击页面时,a=10,b=12这是为什么呢?set中的val参数是怎么传过来的?

计算属性b提供的set和get方法,set中的val,就是你给vm.b赋的值。因为这里定义了setter和getter,所以你每次给b设置值和获取b的值的时候,
都会走相应的方法。理解这个就好解释了。
点击页面,vm.b 被赋值,触发计算属性的set计算,这时候set方法体是用赋给b的值 给a赋值,这时候a就是10了。
你再获取b的值的话,走的是get方法,返回的值是a 的值+2,此时a的值是10.所以加上2以后就是12了。
还不清楚的话可以私聊我,希望可以帮到你。

vue里面维护了对象,你在vue里面操作的时候,相关的数据就自动变化了.