<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="js/vue.js"></script> </head> <body> <div id="app"> 修改fullname的值<input type="text" v-model = "fullname"> 修改shop的值<input type="number" v-model = "shop.price"> <hr> 人民币:<input type="number" v-model="rmb"> 美元:{{dollar}} </div> <script> let vm = new Vue({ el:'#app', data:{ fullname:'韦小宝', shop:{ name : 'OPPO R15', price: 3299 }, rmb:0, //人民币 dollar: 0 //美元 }, watch:{ rmb:function(newval){ // 用人民币数量除以6.8就可以得到对应的美元数量,然后用toFIXED保留2位小数 this.dollar=(newval / 6.8).toFixed(2) }, // 定义具体的监听属性 // 要监听哪个数据,那么监听属性的名称就命名为该数据的名称 fullname: function(newval,oldval){ // newval用于保存fullname的新值 // oldval用于保存fullname的旧值 console.log('fullname新值是什么' + newval +',旧值' + oldval) }, // 对象类型的数据进行常规监听是无法监听到数据变化的 // shop:function(newval,oldval){ // console.log('shop新值是' + newval + ',旧值是' + oldval) // }, // 对对象类型的数据进行监听必须采用深度监听的方法 shop:{ // 打开深度监听选项 deep:true, handler:function(newval,oldval){ // newva保存对象属性的新值 // oldva保存对象属性的旧值 console.log('shop新值是' + newval.name+''+newval.price) } } } }) </script> </body> </html>