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