簡體   English   中英

Javascript-如何實現可重寫的生命周期掛鈎

[英]Javascript - How to implement override-able lifecycle hooks

我正在創建一個我希望擴展的類。 此類允許使用可覆蓋的生命周期掛鈎(類似於React.js組件)來自定義功能。 在基類中,這些方法不起作用。

編碼的“正確”方法是什么?

我是否應該在基類中不實現這些並檢查方法是否存在,例如:

class BaseClass {
    //...
    runLifeCycle() {
        if (this.lifeCycleMethodA) this.lifeCycleMethodA()
    }
    //...
}

還是應該在基類中將它們實現為空函數?

class BaseClass {
    //...
    runLifeCycle() {
        this.lifeCycleMethodA()
    }

    lifeCycleMethodA() {
        // empty block
    }
    //...
}

什么是更清潔的方法?

這完全取決於您,沒有“正確”的方法。 一些輸入:

  • 如果您希望子類方法調用基類方法(與React的生命周期方法一樣),則最好不使用它們。

  • 如果希望子類方法調用基類方法,則提供子類方法會使子類更簡單(它們不需要保護)。

  • 如果您希望基類經常直接使用而不是子類使用,則為它們提供無操作行為會使代碼調用方法更簡單(它不需要保護)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM