# invariants - `State` cannot be a parameter to a struct implementing `Component` - this might only be true of the root component - `use_state` (and other hooks) can only be called in `render` - if you take children in your custom component you must call `render` on them when being rendered - frozen / rendred structs should only take in `AnyElement` not `AnyComponent` - all components should take in a `on_key` parameter - custom components must implement `Default` # todo - add a conditional component, or `if` syntax to `render!` - consider giving `KeyHandler` an additional parameter, specifically a struct that holds state that the `KeyHandler` can inspect. this could handle `onEnter` use case for input text boxes. - create a `use_memo` hook, as it 1. is probably useful 2. could serve as the primitive the `use_state`