vue组件中watch了某个数据,想在首次赋值改数据的时候,不触发watch,用标记变量,只能用setTimeout延迟修改标记变量,有时操作快时候,标记变量还修改,造成不起作用,各位有何好办法?
vue组件中watch了某个数据,想在首次赋值改数据的时候,不触发watch,用标记变量,只能用setTimeout延迟修改标记变量,有时操作快时候,标记变量还修改,造成不起作用,各位有何好办法?
你是不是在等待一个异步(比如ajax)状态给watch的变量赋值?
如果是这样,watch函数提供两个参数,一个是旧值一个是新值,你可以对原来的变量设置一个初始值比如说:null,在检测到时旧值的时候不做处理
不知道这个思路能不能解决你的问题
5 回答7.1k 阅读✓ 已解决
5 回答8.2k 阅读
2 回答10.3k 阅读✓ 已解决
2 回答12.6k 阅读✓ 已解决
2 回答10.4k 阅读✓ 已解决
1 回答5.1k 阅读✓ 已解决
4 回答6.1k 阅读
题主的意思是不是这样的:
在initA的时候不触发watch,在changeA的时候触发
如果是这样的话,可以在
this.a = 1
后,增加this.$watch('a', this.aChangeHandler)
,这样首次赋值是不会触发aChangeHandler
的,只有后面的会触发详见http://codepen.io/quietcoder/...