模板内的表达式非常便利,但是设计它们的初衷是用于简单运算。在模板中放入太多的逻辑,会让模板过重而难以维护。
例如,下面是对message反向输出
<div id="example">
{{ message.split('').reverse().join('') }}
</div>
对于任何复杂逻辑,建议使用计算属性。
基础实例
<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('')
}
}
})
当vm.message发生改变时,vm.reverseMessage绑定也会更新