methods、computed和watch的区别
一. methods
methods 方法:事件方法,调用一次执行一次,不会缓存结果;
二. computed
computed 计算: 计算属性,结果会缓存,只有依赖值发生改变才会去重新计算
三. watch
watch 监听:监听属性 (路由) , 监听数据的变化触发执行函数,也可以进行异步操作
watch 监听 数据的变化
watch 有三个参数
- deep(是否开启深度监听,针对复杂数据类型) 、
- immediate(是否一开始就执行一次handler函数) 、
- handler(数据发生改变执行的函数)
注意: 当我们不需要 deep 和 immediate 的时候 就可以简写为一个函数 这个函数就是 handler
watch: {
num: {
deep: true, //深度监听
immediate: true, //进入页面立刻监听
handler(newval) {
console.log(newval);
},
//执行函数 参数是newval 和 oldval
},
// num() {},
// 之前写的只有一个函数的情况 是handler的简写 不需要 deep 和 immediate的时候可以简写
},
watch 监听路由的变化
//监听路由<==>监听 $router
watch: {
$route: {
handler(newval, oldval) {
console.log(newval, oldval);
},
},
},