微信小程序中使用watch監聽

Vue裏面的監聽很方便,雖然很消耗資源,但是有的時候卻必須要用到,這裏帶大家在小程序中實現簡單的監聽

我的案例是寫在component組件裏面的,當然page頁面也是一樣的,把 attached 換成 onload
把 watch 直接寫入 Page 裏面即可

Component({
  properties: {},
  data: {
    // 這裏是一些組件內部數據
    ze:'123',
    dd:'312'
  }, 
  methods: {
    watch(){
      return{
        ze:(val) => {
          console.log(val)
        }
      }
    },
    btns(){
      this.setData({ze:321})
    }
  },
  attached(){   //類似於beforeMounted 組件掛載前
    Object.keys(this.watch()).some(item => {
      Object.defineProperty(this.data,item,{
        set:this.watch()[item]
      })  
    })
  }
})

需要監聽的變量,和vue的寫法一樣,寫入watch中,不過,這裏要加到 return 中即可 例如 例子 ze
如果監聽需要調用到  this.setData()  把監聽的函數結構換成箭頭函數 例如 例子 ze

總的來說沒有什麼技術難點,主要依靠原生的Object APi   Object.defineProperty() 沒有學過的可以看下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章