资讯详情

Vue之watch

一、什么是watch

watch:用于监听data内部数据是否修改,一旦修改,可以执行其他一些操作也是方法

二、解析watch

watch监控时,可以有二次参数。第一个参数是更新数据,第二个参数是旧数据

   <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Title</title>     <script src="../../public/js/vue.min.js"></script> </head> <body> <div id="app">     <h1>{     
      {text}}</h1>     <button @click="text = 我是新的">监听</button> </div> </body> </html> <script>     new Vue({         el: '#app',         data: {             text: 我是旧一,          },         watch: {             ///监听器的作用是监控数据是否发生变化,变化后可以进行其他操作             ///只要没有变化,没有办法进行其他操作                         text: function (newData, oldData) {                 //newData是更新后的数据                 //oldData是旧数据                 console.log(newData, oldData)                 this.text = 我是最新的一个             }         }     }) </script>

三、watch不同于计算属性

四、watch高级

当使用watch当监控时,我们可能会发现它可以监控数据单数据,数组,但当监控对象显然修改了数据,但没有监控提示,为什么?

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Title</title>     <script src="../../public/js/vue.min.js"></script> </head> <body> <div id="app">     <h1>{     
      {text}}</h1>     <button @click="setHandel">监听</button>     <h1>{     
      {array}}</h1>     <button @click="setArray">更改数组的值</button> </div> </body> </html> <script>     new Vue({         el: '#app',         data: {             text:{                 name:一、                 age:21             },             array: [1,2,3,4,5]         },         methods:{             setHandel(){                 this.text.name = 我是新的             },             setArray(){                 /**                  * 当我们想要更改数组中的值时,                  * this.array[0] = 我是新一,没有办法修改                  * 因为vue在数据双向绑定中,调用的是set和get函数,                  * 但是在数组中没有这两个函数                  * 所以我们只能使用vue封装的$set和变法(即push啊。。。。)                  */                 this.$set(this.array,0,我是新)             }         },         watch: {             //watch监听器,只能第一次监听,             //即在监控对象时,虽然对象中的属性值发生了变化             //但是对象的第一个地址没有改变,所以监听器认为数据没有改变             ///当你想监控对象时,打开深度监控             //deep:true             text: {                 handler:function () {                     alert(‘监听到’)                 },                 deep:true             }         }     }) </script>

标签: lt固态继电器s216zklt固态继电器s312zklt固态继电器s303zl

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台