vue中watch学习记录

watch属性在官网的解释

watch主要用于数据监听,与data,methods同级

使用方式(以按钮加载状态为例):

1),页面上放一个btn按钮,给一个加载状态和一个点击事件

2),加载状态绑定到data上

3),点击事件绑定到methods

 

 4),在watch中进行监听

 

首先讲一下watch工作流程:点击按钮触发methods点击事件,改变data中loading的状态,watch监听到loading状态改变,触发相应的动作

watch中的事件名应与data中的状态命名一样(loading)

loading函数有两个参数,分别是目前的状态(newOld)与改变之前的状态(oldVal)

immediate 

watch默认首次渲染不触发 ,可以通过添加    immediate  属性,设置创建watch监听器后立即触发,第一次调用时参数   oldVal  为  undefined,添加    immediate    属性后写法需要改变一下,函数体名称变为 handler , 原  loading  函数改为对象格式

 

 

deep:

watch默认监听一层,如果data中的状态定义的是    Object    或者    Array    ,则无法进行深度监听

 如果修改成这样,watch就无法进行监听了,因为默认只监听一层

此时在watch中添加deep属性,就可以触发深度监听

异步:

watch中可以进行异步操作

作用域问题: 

在watch中最好使用  function 而不要使用箭头函数,因为箭头函数的this指向使得它不能访问到data中定义的变量,

----------------------------------------------------------

以上为个人理解,如有不足,欢迎在评论区指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值