Vue Vibes in React
$ npm install zenbox
counter.tsx
import { createStore, useComputed, useStore, useWatch } from "zenbox";  
// Types are automatically inferred from initial state
const store = createStore({
  count: 1,
  addStar: () => store.setState(state => { state.count++; }),
});
function StarRating() {
  const { count, addStar } = useStore(store);
  // Computed values that just work
  const score = useComputed(() => store.value.count * 2);
  // Watch changes like Vue
  useWatch(() => store.value.count, count => {
    if (count === 3) alert('Already 3 stars!');
  });
  return (
    <div onClick={addStar}>
      <p>{'⭐️'.repeat(count)}</p>
      <p>Score: {score}</p>
    </div>
  );
}