1.计算属性
在Vue 插值表达式内实现一些操作其实非常便利,但如果表达式的逻辑过于复杂,会让插值过于臃肿且难以维护。这时可以考虑使用Vue的计算属性
1.1 不使用计算属性的例子
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>Vue的计算属性</title><script src="js/vue2.js"></script></head><body><div id="app"><!-- split('')将字符串分割成一个列表reverse()方法将列表倒序排列join('')将列表转成字符串 --><br>{{message.split('').reverse().join('')}}</div><script>var app = new Vue({el:"#app",data:{message:"123456"}})</script></body>
</html>
在以上代码中,插值不再是简单的声明式逻辑,而是用了三个方法实现字符串的反转。
1.2 使用计算属性
计算属性一般在选项对象的computed中以函数的形式进行声明,然后再插值中写函数名进行调用,这样方便代码的修改与维护,也可以进行复用
<div id="app"><!-- split('')将字符串分割成一个列表reverse()方法将列表倒序排列join('')将列表转成字符串 --><p>不使用计算属性:{{message.split('').reverse().join('')}}</p><p>使用计算属性:{{reverseMessage}}</p> </div><script>var app = new Vue({el:"#app",data:{message:"123456"},computed:{reverseMessage(){return this.message.split('').reverse().join('');}}})</script>
在以上代码中,声明了一个计算属性reverseMessage,可以像给绑定普通属性一样将数据绑定到模板的计算属性。Vue会监测到app.reverseMessage 依赖于app.message,因些当message属性发生变化时,所以依赖reverseMessage的绑定也会更新。