vue watch的三种用法

var app = new Vue({
  data: {
    a: 1,
    b: 2,
    c: 3
  },
  watch: {
    // watch的第一种形式
    a: function (val, oldVal) {  // 在监听$route时,第一个参数表示to, 第二个参数表示from
      console.log()
    },
    // watch的第二种形式,注意当引用函数名时,必须用单引号
    b: 'going',
    // watch的第三种形式
    c: {
      handler: function (val, oldVal) {
        console.log(val)
      },
      deep: true, // 是否深度监听
      immediate: true // 是否立即执行handler函数
    }
  },
  methods: {
    going () {
      console.log(123)
    }
  }
})

 在后台登录系统的登陆界面见过这几行代码:

data () {
    return {
        redirect: undefined
    }
}
  watch: {
    $route: {
      handler: function (route) {
        this.redirect = route.query && route.query.redirect
      },
      immediate: true
    }
  },

上述代码的意义是什么呢?
因为有immediate: true 说明加载登录页面时就会执行handler函数,handler的第一个参数表示to,
所以上述代码的意义就是,加载登录页后,直接获取,登录页地址栏的的redirect参数,赋值给this.redirect

上一篇:Java中sleep方法和wait方法的区别


下一篇:第4章 用同步信号编程