Install
$ agentstack add skill-skilld-dev-vue-ecosystem-skills-tanstack-vue-store-skilld ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
TanStack/store @tanstack/vue-store@0.11.0
Tags: latest: 0.11.0
References: [Docs](./references/docs/_INDEX.md)
API Changes
This section documents version-specific API changes — prioritize recent major/minor releases.
- BREAKING:
new Store()->createStore()— v0.9.0 replaced the class constructor with a factory function for all store instantiations [source](./references/releases/@tanstack/vue-store@0.9.0.md)
- BREAKING:
new Derived()->createStore(fn)— v0.9.0 unified derived and simple state creation into the singlecreateStoreAPI [source](./references/releases/@tanstack/vue-store@0.9.0.md)
- BREAKING:
new Effect()->store.subscribe()— v0.9.0 removed theEffectclass; side effects are now handled directly via store subscriptions [source](./references/releases/@tanstack/vue-store@0.9.0.md)
- NEW:
createStore(initialValue)— now the standard way to initialize a store instance with a given initial state [source](./references/docs/quick-start.md)
- NEW:
createStore((prev) => next)— creates a derived store that automatically updates when dependencies change, receiving the optionalprevstate [source](./references/docs/quick-start.md)
- NEW:
createAtom()— creates a generic signal-based atom for granular reactivity, re-exported from@tanstack/store[source](./references/docs/reference/functions/createAtom.md)
- NEW:
createAsyncAtom()— factory for creating reactive atoms from asynchronous functions or Promises [source](./references/docs/reference/functions/createAsyncAtom.md)
- NEW:
batch(fn)— utility to group multiple state updates into a single notification cycle to optimize performance [source](./references/docs/reference/functions/batch.md)
- NEW:
flush()— manually triggers all pending updates across stores for immediate state consistency [source](./references/docs/reference/functions/flush.md)
- NEW:
toObserver()— utility to convert callback functions into a formalObserverobject for subscriptions [source](./references/docs/reference/functions/toObserver.md)
- NEW:
shallow()with expanded support — v0.9.1 addedDate,Map, andSetcomparison to theshallowutility to fix stale values in selectors
- NEW:
useStoreequality check —useStore(store, selector, { equal })now accepts a custom equality function for rendering control [source](./references/docs/framework/vue/reference/functions/useStore.md)
- CHANGED:
alien-signalscore — v0.9.0 switched internal reactivity toalien-signalsfor significantly improved performance [source](./references/releases/@tanstack/vue-store@0.9.0.md)
- NEW:
NoInferinuseStore— improved TypeScript inference for selected state using theNoInferutility in function signatures
Also changed: ReadOnlyStore class · Subscribable interface · AtomOptions with compare · AsyncAtomState type · Subscription object
Best Practices
- Prefer
createStore()over the deprecatednew Store()constructor — aligns with v0.9.0+ idiomatic patterns and internal optimizations [source](./references/releases/@tanstack/vue-store@0.9.0.md)
- Use a factory function within
createStore()for derived state — replaces the removedDerivedclass for better composition and efficient updates [source](./references/releases/@tanstack/vue-store@0.9.0.md)
const store = createStore({ count: 1 })
const doubled = createStore(() => store.state.count * 2)
- Pass a selector function to
useStore()for fine-grained reactivity — ensures the Vue component only re-renders when the specific selected slice of state changes [source](./references/docs/framework/vue/reference/functions/useStore.md)
- Leverage the default
shallowequality inuseStore()for object selections — prevents unnecessary re-renders when your selector returns new object/array references with identical values
- Group multiple state updates within
batch()— minimizes reactive triggers and improves performance in high-frequency update scenarios [source](./references/docs/reference/functions/batch.md)
- Use
createAsyncAtom()to manage asynchronous data — automatically tracks loading, error, and data states in a standardized format [source](./references/docs/reference/functions/createAsyncAtom.md)
- Use
store.subscribe()for side effects instead of the removednew Effect()— provides a cleaner, lifecycle-aware API for observing state changes outside of components [source](./references/releases/@tanstack/vue-store@0.9.0.md)
- Define and export stores from central modules — enables seamless state sharing across multiple Vue components and facilitates better testability [source](./references/docs/framework/vue/quick-start.md)
- Provide a custom
comparefunction inAtomOptionsfor complex state — allows fine-grained control over when an atom's value is considered "changed" to optimize downstream computations [source](./references/docs/reference/interfaces/AtomOptions.md)
- Rely on
NoInferinuseStoreselectors for accurate type safety — ensures TypeScript correctly infers the state type without being influenced by the return type of the selector
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: skilld-dev
- Source: skilld-dev/vue-ecosystem-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.