computed vs watch的区别?
1.watch的监听只能是单个的监听,每次监听只能监听一个变量的修改,不能同时监听多个变量的修改 计算属性computed可以依赖多个数据的变化(并且只跟他所依赖的项进行关联) 2.当需要在数据变化时执行异步或开销较大的操作时,只能采用watch代码展示:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <style> </style> <body> <div id="app"> <p>num: {{num}}</p> <p><input type="text" v-model="msg"></p> <p @click="num++">按钮点击num</p> <p>{{num*2}}</p> <p>doubleNum: {{doubleNum()}}</p> <p>computdNum: {{computedNum}}</p> </div> <script src="./base/vue.min.js"></script> <script> var vm = new Vue({ el:"#app", data:{ num:1, msg:"hello", watchNum:"" }, computed:{ computedNum(){ // console.log("computedNum....") return this.num*2 } }, watch:{ num:{ immediate:true,//初始化的时候也会执行一次 handler(newValue,oldValu){ this.watchNum = newValue*2 } }, }, methods:{ doubleNum(){ // console.log("doubleNum这个函数倍调用了...") return this.num*2 } } }) </script> </body> </html>