鍍金池/ 問答/HTML/ vue watch

vue watch

computed: {
              TrafModeObj() {
                 return this.customForm.TrafModeObj
              }
      },
      watch:{
        TrafModeObj(newValue, oldValue) {
          debugger
          console.log(chkTrafModeObj())
                   //chkTrafModeObj()  
                  },
        deep: true
      }

vue watch 如何監(jiān)聽一個對象的某個屬性沒有變化?我想在newValue === oldValue ===""的時候去校驗input,讓輸入框不能為空.

回答
編輯回答
醉淸風

watch只有當數(shù)據(jù)發(fā)生變化時才監(jiān)聽到,你想實現(xiàn)這種功能,可以換一種方式,比如存儲初始值,在input中觸發(fā)change或者blur事件,在事件中將值與初始值進行比對。

2018年9月6日 21:55
編輯回答
好難瘦

你這個需求很奇怪,watch就是在數(shù)據(jù)進行變化的時候調用的,如果你提到的這個輸入框不能為空的需求的話我推薦你可以用 自定義指令 來實現(xiàn)自定義指令

Vue.directive('isNull', {
  update: function (el,binding) {
      el.style.border= '';
      if((el.value=='')){
          el.style.borderColor= '#FF0000';
      }
  }
})
2017年8月26日 02:09
編輯回答
情殺

只是對對象屬性監(jiān)聽 直接監(jiān)聽對象變化也可以 然后deep:true 深度觀察 可以理解為監(jiān)聽內部屬性的變化

而如果具體某個屬性 你沒必要深度監(jiān)聽 直接computed return 這個屬性值 監(jiān)聽他的變化就可以了

你這個寫法寫重了把

2017年2月4日 18:16