Vue-7-计算属性和方法的区别

647 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

计算属性和方法的区别

接上节内容,我们将需要在模板插值表达式中复杂的计算使用 Vue 的计算属性进行了简化,可能你已经注意到,Vue 的计算属性和 Vue 中的方法很像,只是计算属性的使用类似变量,方法的使用需要加上括号。

更重要的是,计算属性是依赖缓存的,只有属性值发生变化的时候,计算属性才会重新触发调用。而方法不依赖缓存,在每次触发渲染时,方法都会被调用。

实例

计算属性

代码-HTML

    <div id="app1">
       phyger的年龄是多少?
       <br>
       {{ age }}
    </div>

代码-JS

    <script>
        var integer
        var app = new Vue({
            el: "#app1",
            data: {
                birth: 1992
            },
            computed: {
                age: function(){
                    console.log('computed start...')
                    return 2021-this.birth
                }
            }
        })
    </script>

页面效果

过程分析

多次获取计算属性 age 的值,你会发现,计算属性只有在初识渲染的时候调用过一次,后面两次计算属性均为被调用。因为计算属性的值未发生变化。

方法

代码-HTML

    <div id="app1">
        phyger的年龄是多少?
        <br>
        {{ agef() }}
     </div>

代码-JS

    <script>
        var integer
        var app = new Vue({
            el: "#app1",
            data: {
                birth: 1992
            },
            computed: {
                age: function(){
                    console.log('computed start...')
                    return 2021-this.birth
                }
            },
            methods: {
                agef: function(){
                    console.log('method start...')
                    return 2021-this.birth
                }
            }
        })
    </script>

页面效果

过程分析

多次获取 agef()的返回值,意料之中,每次方法都会被调用。

Tip

其实计算属性和方法的区别就类似 Python 中的方法和被@property 装饰的方法。

以上就是今天的全部内容了,感谢您的阅读,我们下节再会。