123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <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">
- <h1>{{num1}}</h1>
- <h1>{{obj.userName}}</h1>
- <button @click="changeNum">按钮</button>
- </div>
- <script>
- new Vue({
- el:"#app",
- data:{
- num1:1,
- obj:{
- userName:"张三",
- age:18
- }
- },
- methods:{
- changeNum(){
- this.num1 = 100;
- this.obj.userName = "李四";
- }
- },
- // 监听属性
- // 当data 中观察属性发生变化了 那么就会触发watch中的函数
- watch:{
- // 函数名称对应的是要观察的data中的属性名
- num1(newVal,oldVal){
- // 监听属性中默认有两个参数 第一个是修改后的值 第二个是修改前值
- console.log(newVal,oldVal);
- console.log("num1发生变化了");
- },
- // obj(newVal,oldVal){
- // console.log(newVal,oldVal);
- // console.log("obj发生变化了");
- // }
- // 监听对象中的属性变化
- obj:{
- handler(newVal,oldVal){
- console.log(newVal,oldVal);
- console.log("obj发生变化了");
- },
- // 监听对象中的属性变化 可以使用deep属性 开启深度监听
- deep:true
- }
- }
- })
- </script>
- </body>
- </html>
|