Vue.js 计算属性:computed

为了方便维护,计算属性在处理一些复杂逻辑时是很有用的。对于处理复杂逻辑,就可以使用计算属性。
说明:
我们可以将同一函数定义为一个方法而不是一个计算属性。两种方式的最终结果确实是完全相同的。然而,不同的是计算属性是基于它们的响应式依赖进行缓存的。只在相关响应式依赖发生改变时它们才会重新求值。这就意味着只要 message 还没有发生改变,多次访问 reversedMessage 计算属性会立即返回之前的计算结果,而不必再次执行函数,简单的说,相比定义方法,计算属性性能更优。

<div id="example">
  <p>原始字符串: "{{ message }}"</p>
  <p>用计算属性处理过的字符串: "{{ reversedMessage }}"</p>
</div>
var vm = new Vue({
  el: '#example',
  data: {
    message: 'Hello'
  },
  computed: {
    // 计算属性的 getter
    reversedMessage: function () {
      // `this` 指向 vm 实例
       return this.message.replaceAll("o","33") //必须要有返回值
    }
  }
})

如果有传参数的需求比如说做数据筛选功能可以使用闭包函数(也叫匿名函数)实现,以下是显示及格人数的案例:

 <table>
        <tr v-for="(item,index) in list" v-if="failed(index)">
            <td>{{item.name}}</td>
            <td>{{item.age}}</td>
            <td>{{item.grade}}</td>
        </tr>
    </table>
var app = new Vue({
        el:"#app",
        data:{
            list:[
                {name:"zhou",age: 11,grade: 91},
                {name:"wu",age: 16,grade: 90},
                {name:"zheng",age: 15,grade: 95},
                {name:"wang",age: 14,grade: 99},
                {name:"lee",age: 15,grade: 59},
                {name:"chou",age: 20,grade: 54}

            ],
        },
        computed:{
            failed(){
                return function (index){
                    return this.list[index].grade>=60
                }
            }

        }
    })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值