Vue中,计算属性computed和methods的区别

Vue中,计算属性computed和methods的区别

写在前面:
关键点

计算属性computed有缓存的。
计算第一次结果后会存入缓存,第二次调用该计算属性computed的时候,他会先读取需要返回的结果是否发生改变,如果没有就直接返回缓存的结果,如果改变了才会从新计算。

应用场景小demo:
在内容拼接时,直接在html代码中书写mustache语法{{ }}的时候,若内容较多,则会导致篇幅较大。因此可以通过创建methods中的方法或者创建computed中的属性来进行代码可读性优化

代码如下:

<body>
    <div id="app">
        <!-- 1.直接拼接:语法过于繁琐 -->
        <h2>{{firstName+' ' + lastName}}</h2>
        <!-- 2.通过定义methods -->
        <h2>{{getFullName()}}</h2>
        <h2>{{getFullName()}}</h2>          <!-- methods中的方法打印了4-->
        <h2>{{getFullName()}}</h2>
        <h2>{{getFullName()}}</h2>
        

        <!-- 3.通过computed属性 -->
        <h2>{{fullName}}</h2>
        <h2>{{fullName}}</h2>               <!-- computed打印了1-->
        <h2>{{fullName}}</h2>
        <h2>{{fullName}}</h2>
    </div>
    <script src="../JS/vue.js"></script>
    <script>
        const app = new Vue({
            el:'#app',
            data:{
                firstName:'Kobe',
                lastName:'Beyant'
            },
            methods:{
                getFullName: function(){
                    console.log('调用的methods');
                    return this.firstName + ' ' + this.lastName;
                }
            },
            computed:{
                fullName: function(){
                    console.log('调用的computed');
                    return this.firstName + ' ' + this.lastName;
                }
            }
        })
        //  计算属性会做一次缓存, 如果内容没有改变,则这个缓存就不会改变,每次访问都是访问这个缓存
        // 因此, 计算属性的性能 要好于 methods属性 
    </script>
</body>

执行结果:
在这里插入图片描述

说明:
计算属性会做一次缓存, 如果内容没有改变,则这个缓存就不会改变,每次访问都是访问这个缓存。
因此, 计算属性computed的性能 要好于 methods属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值