computed計算屬性相關問題
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數據當中的值啊
2019-03-03
樓上的同學正解,vue的computed計算屬性,會監聽自己所管理的data中的屬性的變化,而在自己管理以外的變量的變化是不會去監聽的。
參考 :計算屬性和偵聽器
2019-03-02
str并不在data中,str的值發生改變不會影響computed,只有data中的值發生改變的時候,computed才會重新計算,然后渲染頁面,所有顯示出來的str的值是你在控制臺中改變后的值