javascript - Vue $watch 死循环问题
大家讲道理
大家讲道理 2017-04-10 18:10:22
[JavaScript讨论组]

如果watch中的两个data变量相互调用了,会发生死循环。

watch:{
    'a':{
        handler:function(val,oldVal){
            if(this.b == 0){
                this.b = 1;
            }else{
                this.b = 0;
            }
        },
        deep:true
    },
    'b':{
        handler:function(val,oldVal){
            if(this.a == 0){
                this.a = 1;
            }else{
                this.a = 0;
            }
        },
        deep:true
    },
}

类似于这样,监听当a改变了去改变b,监听当b改变了去改变a
这样的话a和b会一直死循环下去,是在写全选、反选的时候遇到这个问题,当用户勾选全选后,再取消勾选一个条目,全选也会相对应取消勾选,这样就一直死循环下去了。
vue提供了相关的api解决这个问题吗?我在官网没有找到。

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(1)
PHP中文网

这种情况适合用v-on:change事件。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号