immediate
immediate设为true后,则监听的这个对象会立即输出,也就是说一刷新页面就会在控制台输出,当然此时页面上的数据我们还没来得及手动让其发生变化,所以在控制台输出的newvalue为我们在代码中默认设置的值,oldvalue输出为“undefined”。如
当我们手动改变newvalue.id的值后,输出如下:
如果不设置immediate,或者将immediate设为false的话,则刷新页面后不会立即监听此对象,也就是控制台不会有输出,必须要监听的对象有值改变时控制台才会有输出。
data() { return { value:'' }; }, watch:{ value:{ handler:'init', immediate:true } }, methods: { init(){ alert(1) } }
deep设为true后,就可以深入监听了。简单点说,就是可以监听到对象里面的值的变化了
<div> <input type="text" v-model="student.studentname">{{student.studentname}} </div> student:{ studentname:'xi' } watch:{ student:{ handler:function (newvalue,oldvalue) { console.log(newvalue,'new') console.log(oldvalue,'old') }, deep:true, immediate:true } }
不加deep监听不到改变
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问, 点击进行留言回复!!
轻松解决 org.apache.taglibs.standard.tlv.JstlCoreTLV 困惑
vert实践五——Json?Protocol Buffer?FlatBuffers?
[基于tensorflow的人脸检测] 基于神经网络的人脸检测8——验证训练好的神经网络
selenium + ajax抓取英雄联盟全部英雄的详细信息及多线程保存全部皮肤图片到本地
网友评论