computed和watch
一:computed
依赖其他属性计算值,当值发生变化时才会进行计算,只要值不变化,访问时返回的结果还是以前返回的结果而不会重新计算。但是计算属性不支持异步,当comouted中有异步操作时是无效的,无法监听数据的变化。
和watch区别:计算属性初始化的时候就可以被监听到并计算,但是watch是监听的值发生变化了才会被触发。
二:watch
初始化时候就执行
money: { handler() { this.msg++ }, immediate: true } // 将数据写成对象的形式,包含handler和immediate,immediate表示在watch中首次绑定数据的时候是否执行handler,值为true的时候则执行。当watch被声明时就立即执行。
deep深度监听
设置deep为true,就可以监听到对象下key的变化
data() { return { msg:{ name: "张三" age:30 } } }, watch:{ msg:{ handler(val) { console.log(val) }, deep: true } }