Components
Component Lifecycle
Run code when a component appears, disappears, is shown, or is hidden.
With <script lang="ts">, onMount runs when the component is created and
onUnmount runs before it is removed. onShow and onHide react to visibility
changes. Removing a component also stops its watchers and timers.