計算屬性:
模板內的表達式非常便利,但是設計它們的初衷是用於簡單運算的
。在模板中放入太多的邏輯會讓模板過重且難以維護
。例如:
<div id="example"> {{ message.split('').reverse().join('') }} </div>
在這個地方,模板不再是簡單的聲明式邏輯。你必須看一段時間才能意識到,這里是想要顯示變量 message 的翻轉字符串。當你想要在模板中多次引用此處的翻轉字符串時,就會更加難以處理。
所以,對於任何復雜邏輯,都應當使用計算屬性。
例子:
<div id="example"> <p>Original message: "{{ message }}"</p> <p>Computed reversed message: "{{ reversedMessage }}"</p> </div>
var vm = new Vue({ el: '#example', data: { message: 'Hello' }, computed: { // 計算屬性的 getter reversedMessage: function () { // `this` 指向 vm 實例 return this.message.split('').reverse().join('') } } })
結果:
Original message: "Hello" Computed reversed message: "olleH"