Subscribe the hook
Subscribe store hook
tsx
import { createStore, ref } from "reactivity-store";
// store.ts
export const useCounter = createStore(() => {
const count = ref(0);
const increment = () => {
count.value += 1;
};
const decrement = () => {
count.value -= 1;
};
return { count, increment, decrement };
});
// component.tsx
// import { useCounter } from "./store";
useCounter.subscribe((s) => s.count, () => {
// if the count changes, this callback will be called
const newCount = useCounter.getReadonlyState().count;
console.log("Count changed:", newCount);
});
Subscribe state hook
tsx
import { createState } from "reactivity-store";
// store.ts
export const useCounter = createState(() => ({count: 0}), {
withActions: (s) => ({
increment: () => {
s.count += 1;
},
decrement: () => {
s.count -= 1;
},
}),
});
// component.tsx
// import { useCounter } from "./store";
useCounter.subscribe((s) => s.count, () => {
// if the count changes, this callback will be called
const newCount = useCounter.getReadonlyState().count;
console.log("Count changed:", newCount);
});