store1 -> component1.beforeCreate -> store1.register -> store1.usages.push(component1)
store1 -> component2.beforeCreate -> store1.usages.push(component2)
component1.destoryed -> store1.usages.remove(component1)
component2.destoryed -> store1.usages.remove(component2) -> store1.usages.length === 0 -> store1.unregister