vue中computed vs methods的区别

首先看下vue中的用法:

<div id="root">
    <p>now is: "{{ method_now() }}"</p>
    <p>cnow is: "{{ computed_now}}"</p>
</div>

var vm = new Vue({
    el: '#root',
    data:'',
    methods:{
        method_now(){
            return Date.now();
        }
    },
    computed:{
        computed_now: function () {
            return Date.now();
        }
    }
})

百科解释:我们可以使用 methods 来替代 computed,效果上两个都是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。而使用 methods ,在重新渲染的时候,函数总会重新调用执行。
通俗点儿讲就是computed自带缓存,方法里面的属性值会放置到缓存中,如果属性值不发生改变,多次调用时会直接从缓存中取值,相比而言,method 每次调用都会执行该函数,computed提供缓存就是为了海量数据时提高性能。

发布了134 篇原创文章 · 获赞 32 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/yang_guang3/article/details/104095302