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,效果上两个都是一样的, 但 是 c o m p u t e d 是 基 于 它 的 依 赖 缓 存 , 只 有 相 关 依 赖 发 生 改 变 时 才 会 重 新 取 值 。 \color{#FF0000}{但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。} computed而使用 methods ,在重新渲染的时候,函数总会重新调用执行。
通俗点儿讲就是computed自带缓存,方法里面的属性值会放置到缓存中,如果属性值不发生改变,多次调用时会直接从缓存中取值,相比而言,method 每次调用都会执行该函数,computed提供缓存就是为了海量数据时提高性能。

你可能感兴趣的:(前端)