I personally prefer to cache all sub-elements in object variables in an `void enteredView()` override: this localizes the changes should a sub-element's ID change, guarantees that the ID is right (if it's wrong, enteredView will fail immediately, not delaying failure until an undetermined moment when a line with a wrong ID is hit), and established the type for custom elements (no need to `$['...' as Something]` everywhere it's used).