Handling UX variations for multiple brands and apps
Slides from my talk
A few general coding principles which help write reusable React components
Single Responsibility Principle
In React
Components/Containers code must essentially deal with only one chunk of the UI feature/functionality.
Eg. Shipping Address component
Address container (Only has address related fields), Name container (first and last name), Phone component, State, City and Zip code container
In Redux
All API related call go into Redux thunks/other async handling sections (redux-promise, sagas etc)
The thunks are responsible only for the dispatching action on AJAX begin/fail and complete.
Any routing has to be dealt with the receiving component via a promise.
Keep it Simple Stupid (KISS)
Essentially, if the component needs no state - use stateless functions.
Perf matters: Stateless fns > ES6 class components > React.createClass()
Don’t pass any more props than required {...this.props} only if the list is big -- if not pass individual props.
Too much flows of control (If-else variations) inside the component is usually a red-flag. This most likely means - need to split up the component or create a separate variation.
Don’t optimize prematurely - Making the current component reusable with current variations known.
Articles
Building React Components for Multiple Brands and Applications