JavaScript

超轻量级php框架startmvc

详解Vue的watch中的immediate与watch是什么意思

更新时间:2020-09-28 22:24:01 作者:startmvc
immediateimmediate设为true后,则监听的这个对象会立即输出,也就是说一刷新页面就会在控制

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监听不到改变

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

Vue watch immediate