15 笔记

 侦听器的基本结构

<body>
    <script>

new Vue({
    el:'',
    data:{},
    methods:{},
    //侦听器
       //用来侦听数据有没有变化,一旦有变化就调用函数。
       //在data,methods这些平级 
       watch:{
        //改变后的值
        //改变前的值
        //要修改的数据,msg(newValue,oldValue)
           msg(newValue,oldValue){
             console.log('改变了',newValue,oldValue);
           }

       }  
})
       
    </script>
    
</body>

 侦听器的使用

<body>
    <div id="app">
        <button @click="msg = '马超' ">点击送马超</button>
        <p>{{ msg }}</p>
    </div>
    <script src="./vue.js"></script>
    <script>
        new Vue({
            el:'#app',
            data:{
             msg:'曹操'
            },
            watch:{
                msg(newValue,oldValue){
                    console.log('改变了',newVlaue,oldValue);
                }
            }
              
        })
    </script>

 

 

<body>
    <div id="app">
        <button @click="list.push('毒华佗')">点击送毒华佗</button>
        <button @click="list.pop()">删除一个项</button>
        <!--利用索引值改变数组时,不能被侦听到。-->
        <button @click="list[0]='许褚'">修改第一项</button>
        <button @click="list.splice(1,0,'马超')">第二项添加</button>
        <u1>
        <li v-for="item in list"> {{item }}
        </1i>
        </u1>
    </div>
        <script src="./vue.js"></script>
        <script> 
        new Vue({
             el:'#app',
              data:{
          list:['金马超','刘备','张飞','关羽']
          },
          watch:{
          list(){
          conso1e.log('数组改变了');
           }
        }
        })
        </script>
</body>

 

 

<body>
    <body>
        <!-对对象进行侦听->
        <div id="app">
             <p>{{obj.name }} --- {{obj.age }} --- {{ obj.height }}</p>
        <button @click="obj.name='rose'">修改obj的name属性</button>
        <button @click="obj.age=30">修改obj的age属性</button>
        <button @click="obj={name:'andy',age:99}">修改obj的指向</button>
        </div>
        <script src="./vue.js"></script>
        <script>
        new Vue({
          el:'#app',  
          data:{
          obj:{
          name:'jack',
          age:16,
          height:175
          }
         },
        watch:{
        //这种写法侦听不到obj对象内部属性的变化,
        //只能侦听到obj对象指向的变化。
        //obj(){
        //console.1og('obj变化了');
        //},
        //如果想侦听到对象里属性的变化
        //侦听obj里name的变化(要记得加引号)
        //"obj.name"()
        //console.log('name变化了');},
        //可是这样写只能侦听一个属性。
      //如果希望侦听到对象里所有属性的变化,就要开启深度侦听。
  obj:{
   //当有变化会调用的函数
   handler(){
   console.log('obj的属性变化了');
   }
  //开启深度侦听
  //deep:true,
   //要不要当前页面一打开就立即调用nandler函数。
   //给true表示立即调用,默认是f1ase。(代表只有改动了才调用
   //immediate:true
   }
   }
})
</script>
    
</body>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值