美文网首页
methods watch和compute的区别

methods watch和compute的区别

作者: 干净_79db | 来源:发表于2019-04-18 09:02 被阅读0次

    一、作用机制上

    1.watch和computed都是以Vue的依赖追踪机制为基础的,它们都试图处理这样一件事情:当某一个数据(称它为依赖数据)发生变化的时候,所有依赖这个数据的“相关”数据“自动”发生变化,也就是自动调用相关的函数去实现数据的变动。
    2.对methods:methods里面是用来定义函数的,很显然,它需要手动调用才能执行。而不像watch和computed那样,“自动执行”预先定义的函数。

    二、从性质上

    1.methods里面定义的是函数,你显然需要像"fuc()"这样去调用它(假设函数为fuc)。
    2.computed是计算属性,事实上和和data对象里的数据属性是同一类的(使用上)。
    3.watch:类似于监听机制+事件机制。例如:watch: { firstName: function(val) {this.fullName = val +this.lastName }}firstName的改变是这个特殊“事件”被触发的条件,而firstName对应的函数就相当于监听到事件发生后执行的方法

    三、watch和computed的对比首先它们都是以Vue的依赖追踪机制为基础的。

    它们的共同点是:都是希望在依赖数据发生改变的时候,被依赖的数据根据预先定义好的函数,发生“自动”的变化。我们当然可以自己写代码完成这一切,但却很可能造成写法混乱,代码冗余的情况。但watch和computed也有明显不同的地方:watch和computed各自处理的数据关系场景不同
    1.watch擅长处理的场景:一个数据影响多个数据
    2.computed擅长处理的场景:一个数据受多个数据影响相比于watch/computed,methods不处理数据逻辑关系,只提供可调用的函数

    相关文章

      网友评论

          本文标题:methods watch和compute的区别

          本文链接:https://www.haomeiwen.com/subject/xsoawqtx.html