在Vue.js中,我們可以使用get屬性來(lái)監(jiān)聽(tīng)對(duì)象的數(shù)據(jù)屬性的變化。我們一般需要為對(duì)象的屬性賦值,但是Vue.js通過(guò)get屬性允許我們?cè)谠L問(wèn)該屬性時(shí)執(zhí)行特定的邏輯。如果我們將一個(gè)對(duì)象的屬性綁定到一個(gè)Vue實(shí)例的屬性上,那么get屬性可以幫助我們減輕對(duì)該值的重新賦值操作。
const vm = new Vue({ data: { age: 30 }, computed: { ageInMonths() { return this.age * 12; }, getAge() { console.log("Age is accessed"); return this.age; }, setAge(val) { console.log("Age is set to " + val); this.age = val; } } }); console.log(vm.getAge); // 輸出: Age is accessed; 30; vm.setAge = 35; // 輸出: Age is set to 35;
在上面的代碼中,我們定義了一個(gè)Vue實(shí)例,其中有一個(gè)名為“age”的數(shù)據(jù)屬性,并為其創(chuàng)建了一個(gè)計(jì)算屬性“ageInMonths”。我們還定義了一個(gè)名為“getAge”的getter方法和一個(gè)名為“setAge”的setter方法,它們都將“age”作為其內(nèi)部變量。
在第三個(gè)代碼行中,我們將“age”屬性的值綁定到Vue實(shí)例的getAge方法上。
如果我們現(xiàn)在嘗試訪問(wèn)該屬性,例如在第13行中,它將輸出“Age is accessed”并返回該屬性的值,如上例中的30。如果我們嘗試設(shè)置屬性的值,例如在第15行中,它將輸出“Age is set to 35”并將新值設(shè)置為35。
使用“get”屬性可以幫助我們避免不必要的變量重新賦值,并為代碼增加可讀性并使其更易于維護(hù)。