下拉框的watch监听与change事件

区别:

提示:这里简述两者的区别:

 1. @change

  1. @change是一个事件监听器,用于监听特定DOM元素的变化事件,通常用于表单元素(如输入框、下拉框等)的值变化。
  2. 它在用户与表单元素交互并提交了变化时触发,比如输入框失去焦点或者用户选择了一个选项。
  3. @change只能用于具有特定的DOM事件(如输入框的输入事件、下拉框的选择事件等)。
  4.  适用于处理用户交互引起的数据变化。

 2. watch

  1. watch是一个监听器,用于观察数据的变化,并在数据变化时执行相应的操作。 
  2. 它可以监听任意数据的变化,不限于特定的DOM事件,是随时监听数据变化,数据一变化就触发,而不是失去焦点等dom事件触发。
  3. 适用于对数据进行深层次的监控和处理,比如当一个数据的某个属性变化时执行一些操作。

问题描述

现有两个下拉框与两个输入框,两个下拉框一个是线路下拉框一个是选人的下拉框,输入框一个是本次发票金额,一个是累计发票金额

线路是最主要的,选人是根据线路的id来选人,累计发票金额(含本次)是根据线路id查询后加上本次发票金额输入框的值

如下图:

如果用监听

因为累计发票金额(含本次)与选择审批人的数据都是根据线路来获取的,那么累计发票金额(含本次)与选择审批人的数据请求就放在线路id的监听中

在返显的时候,

后台会返显线路,监听到线路变化就会请求累计发票金额(含本次)与选择审批人的数据

但是 累计发票金额(含本次)是要用后台返给自己的数据而不是 请求累计发票金额(含本次)的接口然后再加上本次发票金额输入框的值,而是直接使用后台返回的数据(所以应该是用@change事件只有在线路变化才重新请求累计发票金额含本次,不是用监听线路)

选择审批人的数据也是监听到后台返显的线路重新请求,但是后台返回的上次填写时已经选中的值就没有了,因为这个时候有可能线路的还没有赋值上,那么就不会有请求选择审批人的数据(所以应该是在返回线路的时候就请求审批人的数据,不是用监听线路)


原因分析:

提示:这里填写问题的分析:

watch监听是在赋值的时候就会触发,回显也是赋值,也会触发

change在值变更的时候才会触发,回显不属于值的变更,不会触发


解决方案:

提示:这里填写该问题的具体解决方案:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值