Break Out Composite Components
Don’t be afraid to split components into smaller components. Components can refer to other components in their output. This lets us use the same component abstraction for any level of detail. A button, a label, a rounded profile picture: all those are commonly expressed as components.
Stateless Component
The simplest way to declare a component is to create a CKStatelessComponent
. A CKStatelessComponent
is based on the concept of purity in functional programming paradigms, meaning that it renders the same output for the same input (in this case props
) with no need of a state
dependency.
struct NewComponentProps {UIEdgeInsets insets;}CKComponent *NewComponent(const NewComponentProps &props){return CKCreateStatelessComponent(CK::InsetComponentBuilder().insets(props.insets).component([AwesomeComponent new]).build(),__func__); // __func__ is used to easily identify your stateless component in DEBUG}
Stateless component are optimized to have the minimum memory and binary size impact and lifts off the need of making all of your components an Objective-C class.
Composite Components
When your component depends on an internal state that is used to render its content you can create your new component as subclass of `CKCompositeComponent.