Why does `PluginSettingTab` not use the `Component` interface?

Is there a reason that PluginSettingTab uses a different interface than Component?

I’m working on a package that provides UI-related tools for plugin developers, and noticed the inconsistency while working on the documentation for my tool.

PluginSettingTab

  • Calls .display() to show contents
  • Calls .hide() to cleanup

Component

  • Calls .load() to show contents
  • Calls .unload() to cleanup

While it isn’t a big deal, I’m curious why there are two different interfaces for what fundamentally feels like the same behavior. My package provides a Component subclass that I assumed would be directly usable in the settings as well, but I instead need to manually call the Component#load and Component#unload methods when it felt like I should be able to register my settings UI with .addChild.

Thanks for fielding my question!