Vue 2.x里面如果我們有一個屬性需要在插值表達(dá)式和v-bind指令中使用時,就需要用到computed。computed屬性有一個坑,就是:computed屬性里面的this指向的是Vue實例對象,而不是我們當(dāng)前的組件對象。
那么如果想在computed屬性中使用當(dāng)前組件對象,怎么辦呢?這里有兩種方法:
//方法1:使用箭頭函數(shù) computed: { xxx: () =>{ return this.property; } }
因為箭頭函數(shù)繼承了上一層函數(shù)作用域的this,所以在箭頭函數(shù)中的this就指向了當(dāng)前組件對象。
//方法2:定義變量存儲this computed: { xxx: function() { const self = this; return self.property; } }
通過定義變量self來存儲當(dāng)前組件對象的引用,我們就可以在computed屬性中使用當(dāng)前組件對象了。