This project contains seven approaches to the same simple test app. Each approach produces the same element tree, but manages state differently in the code. Each component in each version logs its name to the console to make it easy to track rerenders.
The intent of this comparison is to help ground discussions of the relative merits of different React state management techniques. Comments are very welcome.