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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue中如何正确的使用watch?
    • 2019-09-24 00:00
    • 10
    37
    0

    在组件传参的时候使用Object.assign,子组件使用watch监听传递过来的参数,参数变化时执行相应事件,并设置了immediate:true,但是现在在页面初次加载的时候事件会执行两次,不知道是什么导致的。

    // 父组件
    <new-line-charts
      :_id="'singleStage'"
      :text="`SINGLE STAGE`"
      :url="'/xxx'"
      :params="Object.assign({}, params, {'stageType': 'SINGLE'})"
      :styles="styles"></new-line-charts>
    
    data() {
        return {
            params: {
                a: 2
                b: 1
            }
        }
    }
    // 子组件
    watch: {
        'params': {
          handler() {
            this.getData() // 这里执行了两次
          },
          deep: true,
          immediate: true
        }
    }

    解决办法是设置immediate: false但是不知道为什么会导致第一次执行两次

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 一只鹿ii 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


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