zoukankan      html  css  js  c++  java
  • [转] vue之computed和watch

    计算属性 computed
    侦听器or观察者 watch

    一直以来对computed和watch一知半解,用的时候就迷迷糊糊的,今天仔细看了看文档,突然茅塞顿开,原来就是这么简单啊:

    computed,通过别人改变自己

    watch,通过自己改变别人

    需要注意的是,computed会缓存数据,只有在满足以下两个条件时才会重新计算:

    1、存在依赖型数据,即存在于VUE的data等对象的实下的实例数据

    2、依赖型数据发生改变

    如果不满足以上两个条件,computed不会重新计算,只会拿缓存的数据。而watch,只要调用他,他就会执行。

    注意:computed会缓存数据,所以进行开销较大的操作时不适合用它。

    非依赖型数据发生改变时,这是使用methods方法即可。

    computed也可以通过自己改变别人

    computed默认只有 getter ,不过在需要时也可以提供一个 setter:

        computed: {
          fullName: {
            // getter
            get: function () {
              return this.firstName + ' ' + this.lastName
            },
            // setter
            set: function (newValue) {
              var names = newValue.split(' ')
              this.firstName = names[0]
              this.lastName = names[names.length - 1]
            }
          }
        }

    然后运行 vm.fullName = 'John Doe' 时,setter 会被调用,vm.firstName 和 vm.lastName 也会相应地被更新。

    什么时候使用

    computed

    1、其他依赖型数据发生改变,自身也要改变的时候

    2、自身改变了,想要改变其他数据的时候,这时需要添加setter

    watch

    1、自身改变时改变其他数据

    2、当需要在数据变化时执行异步或开销较大的操作时

  • 相关阅读:
    JavaScript对象编程-第3章
    JavaScript对象编程-第3章
    JavaScript基础-第2章
    JavaScript基础-第2章
    JavaScript基础-第2章
    第十八节:详解Java抽象类和接口的区别
    第十八节:详解Java抽象类和接口的区别
    第十八节:详解Java抽象类和接口的区别
    JavaScript概述-第1章
    JavaScript概述-第1章
  • 原文地址:https://www.cnblogs.com/chris-oil/p/9962188.html
Copyright © 2011-2022 走看看