关于computed(计算属性) methods watched (VUE)区别

关于computed(计算属性) methods watched官网的说明如下:

    计算属性:https://vuejs.org/v2/guide/computed.html#ad

    methods : https://vuejs.org/v2/guide/computed.html?#ad

   watched : https://vuejs.org/v2/guide/computed.html#Computed-vs-Watched-Property

        关于代码https://vuejs.org/(官网)的就挺好用,这里就不多写了,就只写写纯文字总结了
   

computed(计算属性):和普通属性一样是在模板中绑定计算属性,当data中对应数据发生改变时,计算属性值会随之改变

 methods: 是方法,只要调用,函数就会执行 
------------
computed 和methods 达到的效果是相同的
不同点是:计算属性compute是基于他们的依赖(如果是实例范畴之外的依赖,比如非响应式的not reactive是不会触发属性更新的)进行缓存(计算属性的结果会被缓存),只有相关依赖会发生改变时才会重新求值,未改变只会返回只之前的结果,不在执行函数 
故:计算属性computed和methods都不应该使用箭头函数来定义计算属性 因为箭头函数绑定了父级作用域的上下文,所以 this 将不会按照期望指向Vue
        computed是响应式的,methods并非响应式。
        调用方式不一样,computed定义的成员像属性一样访问,methods定义的成员必须以函数形式调用。
        computed是带缓存的,只有其引用的响应式属性(属性绑定)发生改变时才会重新计算 (如果引用的属性没有改变,则调用上一次缓存值),而methods里的函数在每次调用时都要执行。但是在利用实时信息时,比如显示当前进入页面的事件,必须用methods方式
computed中的成员可以只定义一个函数作为只读属性,也可以定义get/set变成可读写属性,这点是methods中的成员做不到的。
       computed 计算属性的方法在用属性时不用加(),而methods 方法在使用时要像方法一样去用,必须必须要加(){ { mes() }}
--------------------------------------------------------------------------
computed计算属性  
  原值与新值一样不会触发
  在fn中return 出来的就是最终获取的值

  在fn中凡是用到this.XXX,这个属性就会被监视起来

如有描述错误,还望多多指正,谢谢!!!

猜你喜欢

转载自blog.csdn.net/nlnlznl224/article/details/79552200
今日推荐