Create and render React component with Zustand state management
by oktaviardi pratama
HTML
<!-- React + ReactDOM -->
<script src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<!-- Babel (so we can write JSX in JSFiddle) -->
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/zustand/umd/zustand.development.js"></script>
<div id="root"></div>
React
const { create } = zustand;
// Create Zustand store
const useStore = create((set) => ({
count: 0,
increase: () => set((state) => ({ count: state.count + 1 })),
decrease: () => set((state) => ({ count: state.count - 1 })),
reset: () => set({ count: 0 }),
}));
function Counter() {
const count = useStore((state) => state.count);
const increase = useStore((state) => state.increase);
const decrease = useStore((state) => state.decrease);
const reset = useStore((state) => state.reset);
return (
<div style={{ fontFamily: "Arial", padding: 20 }}>
<h2>Zustand Counter</h2>
<h1>{count}</h1>
<button onClick={decrease}>-</button>
<button onClick={increase}>+</button>
<button onClick={reset}>Reset</button>
</div>
);
}
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(<Counter />);