1: make communication between react components easier 2: create seperate state store for your component you want (not like redux, all state in one place) 3: state recalsulation run asynchronously, or can be delayed after a duration 4: React itself is one-way binding store, with this you can make two-way binding store
check out sr/examples for more detailed usage Thank you!