vue的侦听器及怎么侦听数组--笔记

作用

侦听属性 响应数据的变化,当数据发生改变的时候 会立即执行对应的函数


    

vue的侦听器及怎么侦听数组--笔记_第1张图片

这里我同过侦听器和v-model指令一起用可以更直观的体现他的作用(这也是常用搭配)。

原理:当input输入内容后,因为v-model指令的绑定,此时entry属性值会随之变化。侦听器在侦听到了entry属性变化后触发侦听事件打印 “侦听到了”。
侦听事件的参数

侦听器在侦听到属性值改变后,会触发一个侦听事件,此事件可以有两个参数。

 

   1.newval   更改后的数据
    2.oldval   更改前的数据

注意:这两个参数的名字不能变,第一个必须是newval第二个必须是oldval,否则会报错


    

vue的侦听器及怎么侦听数组--笔记_第2张图片

 

输入第一个数“1”的时候,由于没有旧数据,所以打印出来的是空字符串

深度侦听

作用:侦听到引用类型的内部属性值的变化(普通侦听无法直接侦听到对象、数组里面的某个值的变化)

如下代码:不使用深度侦听去侦听引用类型的值

    侦听的值:{{ val }}
    

vue的侦听器及怎么侦听数组--笔记_第3张图片

 

可以看到,改变了引用类型的属性值虽然页面渲染了,但侦听并未触发

如果想要侦听到首先得了解handler、deep

handler 方法就相当于普通侦听器触发的事件
deep 方法标志这是一个深度侦听

修改代码成如下

    侦听的值:{{ val.a }}
    

vue的侦听器及怎么侦听数组--笔记_第4张图片

 


打印出了“侦听两字”,代表侦听成功

侦听数组
数组是无法直接被侦听和渲染的,即便是加了deep也无法渲染或则侦听,但我们可以通过侦听其他属性的值这种方法来改变数组的值达到同步渲染的效果

 

    侦听的值:{{ val }}
    

vue的侦听器及怎么侦听数组--笔记_第5张图片

 

你可能感兴趣的:(vue.js,javascript,前端)