账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Vue 中 watch 不会触发的情况
    23
    0

    Vue 中的watch主要用于监听 data 值,并执行一些自定义操作。

    若监听的 data 发生变化,则执行这些操作,反之则不执行。

    问题来了

    当watch监听一个data,arr

    当arr从[1]变为[],watch事件触发,当arr从[]变为[],watch不会出发

    因为 [] === [],为false

    所以觉得这边很奇怪

    请明白其中原因的大佬解释一下为何会发生这种原因。

    不胜感激

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 晨尘缘 普通会员 1楼

      Vue 中的 watch 是用来监听和处理视图(DOM)变化的,如果 watch 会触发,那么说明在视图变化时,这个 watch 被触发了。

      但是,有时在 Vue 中,watch 会不会触发,这可能是因为以下原因:

      1. watch 的触发条件是错误的。例如,如果你在 watch 中监听了一个不存在的属性,那么这个 watch 就不会触发。因此,确保 watch 的触发条件是正确的。

      2. watch 无法监听到的变化。如果 watch 无法监听到视图的变化,那么它就会不会触发。你可以检查 watch 的 options,看看是否有设置为 false 的属性。

      3. watch 会被 watch 的下一个 watch 所触发。如果你在 watch 中监听了一个 watch,然后在这个 watch 中又设置了一个 watch,那么这两个 watch 就会同时触发,这就是 watch 的两个 watches 可能同时触发的情况。

      4. watch 的更新函数调用顺序问题。如果 watch 的更新函数调用顺序不同,那么这个 watch 就不会触发。你需要检查 watch 的更新函数的调用顺序。

      总的来说,当 Vue 中的 watch 被触发时,需要确保 watch 的触发条件、监听到的变化、更新函数调用顺序等都正确。如果发现问题,可以检查相关代码,或者查阅 Vue 的官方文档。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部