watch与函数执行顺序

今天查一个bug,过程比较麻烦,但结论值得注意一下。

1、view中绑定了“result”变量,通过watch监听变量“name”变化,每当name变化,则触发"result = false"。

2、点击按钮触发函数func,函数中有赋值”result = true“,但是函数执行完后,result却为false,view没有变化。

查bug过程中,发现函数func中,首先对变量 name 进行了校正,也就是改变了name值,自然会触发 watch,得到”result = false“。在函数结尾时对result进行赋值,”result = true“。但是结果却是”result = false“。通过添加调试信息,得到结论:

只有函数主流程结束后才会进入 watch 监听流程。所以在函数中无论 ”name的变化“ 在前还是在后,都是最后才进入watch流程,不会打断主函数执行过程。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容