Vue2 computed与watch示例中实例属性及watch回调参数问题咨询
问题解答
1. 关于this.debouncedGetAnswer的挂载位置
- 这个属性既不属于data选项也不属于methods选项,是你直接挂载到Vue组件实例上的自定义属性。
- 只要在Vue实例的作用域下(生命周期钩子、methods、watch回调等场景)通过
this.属性名赋值的属性,都会直接挂载到实例上,所以你后续可以正常通过this访问。 - 额外补充:和data中声明的属性不同,这种手动挂载的属性不会被做响应式处理,刚好防抖函数不需要响应式,这种写法属于合理的性能优化实践,不会造成不必要的响应式监听开销。
2. 关于watch回调的参数规则
- watch配置项的回调参数是Vue框架内置规定的:所有监听属性的回调默认会按顺序传入两个参数,第一个是监听属性变化后的新值,第二个是变化前的旧值,你示例里的
newQuestion和oldQuestion就是对应的新值和旧值,参数名可以自定义,顺序是固定的。 - 这类框架内置传入的参数,统一规则就是查对应API的官方说明:不管是watch回调、生命周期钩子参数,还是其他框架提供的配置项回调,参数的数量、顺序、含义都在对应API文档里有明确标注,不需要凭空猜测,遇到不确定的直接查对应API说明即可。
内容的提问来源于stack exchange,提问作者user587266
相关产品推荐
相关产品推荐

