Vue.js实战
上QQ阅读APP看书,第一时间看更新

3.1 什么是计算属性

通过上一章的介绍,我们已经可以搭建出一个简单的Vue应用,在模板中双向绑定一些数据或表达式了。但是表达式如果过长,或逻辑更为复杂时,就会变得臃肿甚至难以阅读和维护,比如:

        <div>
            {{ text.split(', ').reverse().join(', ') }}
        </div>

这里的表达式包含3个操作,并不是很清晰,所以在遇到复杂的逻辑时应该使用计算属性。上例可以用计算属性进行改写:

        <div id="app">
            {{ reversedText }}
        </div>
        <script>
            var app = new Vue({
              el: '#app',
              data: {
                  text: '123,456'
              },
              computed: {
                  reversedText: function () {
                    // 这里的this指向的是当前的Vue实例
                    return this.text.split(', ').reverse().join(', ');
                  }
              }
          })
        </script>

所有的计算属性都以函数的形式写在Vue实例内的computed选项内,最终返回计算后的结果。