vue 之 hook使用


記錄一下vue中hook的兩點使用

1. 在同一個組件中

例如:在mounted中添加一個監聽需要在beforeDistroy中移除這個監聽,考慮到某些原因你不想再寫個beforeDistroy去實現,這時候綠巨人hook就該登場了!

  mounted () {
    window.addEventListener('online', this.handleOnline)
    this.$once('hook:beforeDestroy', function () {
      window.removeEventListener('online', this.handleOnline)
    })
  },

就是你在任意地方用 this.$on/$once('hook:生命周期',callback),就可以監聽到生命周期的變化了

2. 在父組件監聽子組件的生命周期方法

如果你站在父組件里想在子組件的mounted方法里邊做一些事情你會怎么辦呢?

    //父組件中這樣寫
    <rl-child
      :value="40"
      @childMounted="handleChildMounted"
    />
    // 子組件中這樣寫
    mounted () {
      this.$emit('childMounted')
    },

這樣確實可以實現,那有沒有更好的方式呢?綠巨人說有!!

    //父組件中這樣寫
    <rl-child
      :value="40"
      @hook:mounted="handleChildMounted"
    />

    // 子組件中不用寫東西
    mounted () {
      
    },

這樣就實現了!是不是還簡潔一點呢?

 

你可能會說,好雞肋啊,不用你浩克也都能實現啊?這不是脫褲子放屁么?

那如果:你用的是第三方的組件庫,你需要在這個組件發生改變時候做一些操作,巧了這個組件還沒有實現@change回調,你怎么獲取呢,這個時候你轉身發現hook真香唉!

 

 

over

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM