3——VUE侦听器和计算属性

一、普通方法

格式:

javascript 复制代码
methods:{
      方法名(形参){
          方法体;
      }
}

二、侦听器 Watch

问题:用普通方法实现不了对数据进行时刻关注

解决:watch侦听,实现对数据时刻监控,一旦数据发生改变立马会有反应

1、写法:

javascript 复制代码
 //写法一:类似于函数
 watch:{
        a(val){
                this.c=val+this.b;
        },
        b(val){
                this.c=val+this.a;
        }
       
    }
javascript 复制代码
//写法二:类似于对象写法(复杂数据类型建议使用此方法)
watch:{
        b:{
          handler(val){
            console.log(val);
        }
    }
       
    } 

注意:

1、侦听器他和普通方法同级

2、侦听器必须侦听的是data中的数据,否则会报错

2、立即监听:都是使用对象写法通过handler处理函数immediate:true实现立即监听

javascript 复制代码
//普通数据   
 b:{
            handler(newname,oldname){
              console.log(newname,oldname)
            },
           immediate:true,               
        },
  //复杂数据
        'obj.name':{
             handler(newname,oldname){
               console.log(newname,oldname)
            },
           immediate:true,
        }
       

3、深度监听 deep:true

javascript 复制代码
//深度监听可以监听到对象的所有属性
    obj:{
             handler(newname,oldname){
              console.log(newname,oldname)
            },
           immediate:true,
           deep:true

        }

三、计算属性Computed

1、概述

在Vue组件中,通过在computed对象中定义计算属性的名称及对应的计算函数来创建计算属性。计算函数会返回计算属性的值

计算属性:计算data中的数据得到一个结果,影响结果的数据将都会被监听

格式:

javascript 复制代码
 computed:{
    c(){
      return this.a+this.b;  (a和b是data中的数据)
    }
  }

注意:

1.计算属性的结果是通过计算属性得来的,所以会时刻进行对data中相关数据的监听

2.计算属性的结果不能出现在data中

总结:computed会初始化(页面打开会被执行一次),computed有缓存机制,监听数据无变化会走缓存

四、watch和computed的不同

相同:

1、都可以监听数据

2、watch和computed与methods都是同级

不同:

1、computed 有缓存

2、watch 只可以监听一个data中的数据,computed可以监听多个或一个

3、watch监听的数据必须是data中声明的,computed计算属性不可以在data中声明

4、computed中有get和set方法

5、watch支持异步,computed不支持异步

相关推荐
未来之窗软件服务1 小时前
自己写算法(九)网页数字动画函数——东方仙盟化神期
前端·javascript·算法·仙盟创梦ide·东方仙盟·东方仙盟算法
你的人类朋友2 小时前
什么是断言?
前端·后端·安全
FIN66683 小时前
昂瑞微:实现精准突破,攻坚射频“卡脖子”难题
前端·人工智能·安全·前端框架·信息与通信
椎4953 小时前
苍穹外卖前端nginx错误之一解决
运维·前端·nginx
@。1243 小时前
对于灰度发布(金丝雀发布)的了解
开发语言·前端
我有一棵树3 小时前
前端图片加载失败、 img 出现裂图的原因全解析
前端
FIN66683 小时前
昂瑞微冲刺科创板:硬科技与资本市场的双向奔赴
前端·人工智能·科技·前端框架·智能
im_AMBER3 小时前
杂记 14
前端·笔记·学习·web
牧杉-惊蛰3 小时前
disable-devtool 网络安全 禁止打开控制台
前端·css·vue.js
C+ 安口木3 小时前
vue中监听window某个属性被添加或值的变化
前端·javascript·vue.js