Vue的watch中的immediate與watch是什麼意思

immediate

immediate設爲true後,則監聽的這個對象會當即輸出,也就是說一刷新頁面就會在控制檯輸出,固然此時頁面上的數據咱們還沒來得及手動讓其發生變化,因此在控制檯輸出的newValue爲咱們在代碼中默認設置的值,oldValue輸出爲「undefined」。如code

當咱們手動改變newValue.id的值後,輸出以下:對象

若是不設置immediate,或者將immediate設爲false的話,則刷新頁面後不會當即監聽此對象,也就是控制檯不會有輸出,必需要監聽的對象有值改變時控制檯纔會有輸出。input

data() {
      return {
        value:''
      };
    },
    watch:{
      value:{
        handler:'init',
        immediate:true
      }
    },
    methods: {
      init(){
        alert(1)
      }
    }

deep設爲true後,就能夠深刻監聽了。簡單點說,就是能夠監聽到對象裏面的值的變化了it

<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監聽不到改變
相關文章
相關標籤/搜索