qq_珍惜青春_0
2019-03-02 11:58
var str = "test))"
var app = new Vue({
el:".app",
data:{
msg:"hellovue ",
another:"goodvue "
},
watch:{
msg:function(newvalue,oldvalue){
console.log("newvalue="+newvalue);
console.log("oldvalue="+oldvalue);
}
},
computed:{
msg1:function(){
return "msg "+this.msg+this.another+str;
}
}
})
这个例子中为啥,在控制台直接改变了str的值后,msg1中str的值没有变化,当,改变another或者msg的时候,str的内容变了,这个str不是data数据当中的值啊
楼上的同学正解,vue的computed计算属性,会监听自己所管理的data中的属性的变化,而在自己管理以外的变量的变化是不会去监听的。
参考 :计算属性和侦听器
str并不在data中,str的值发生改变不会影响computed,只有data中的值发生改变的时候,computed才会重新计算,然后渲染页面,所有显示出来的str的值是你在控制台中改变后的值
3小时速成 Vue2.x 核心技术
82572 学习 · 489 问题
相似问题