valtio-define
Master of comprehensive usage techniques for `valtio-define`, used for defining and managing Valtio states.
npx skills add hairyf/skills --skill valtio-defineBefore / After Comparison
1 组When using Valtio for state management, unfamiliarity with its advanced features can lead to chaotic state definitions. This results in poor code readability, making it difficult to maintain and extend, and ultimately impacting development efficiency.
Applying this skill enables a comprehensive understanding of valtio-define's usage and best practices. It optimizes state definitions, improves code clarity and maintainability, ensuring efficient and stable state management.
Based on valtio-define v1.0.1. A Valtio-based state management library with Pinia-like API for React applications.
Overview
valtio-define provides a factory function for creating reactive stores with state, actions, and getters. Built on top of Valtio, it offers a familiar API similar to Pinia with full TypeScript support.
Core References
| Topic | Description | Reference |
|---|---|---|
| defineStore | Core API for creating reactive stores | core-define-store |
| useStore | React hook for accessing store state | core-use-store |
| Types | TypeScript types and interfaces | core-types |
Advanced Features
| Topic | Description | Reference |
|---|---|---|
| Subscriptions | Subscribe to state changes | advanced-subscribe |
| Patch | Update state with patch operations | advanced-patch |
| Signal | JSX component for inline reactive values | advanced-signal |
| Store to State | Convert store to useState-like hooks | advanced-store-to-state |
Features
| Topic | Description | Reference |
|---|---|---|
| Plugin System | Extend stores with plugins | feature-plugin-system |
| Persistent Plugin | Persist state to storage | feature-persistent-plugin |
Quick Start
import { defineStore, useStore } from 'valtio-define'
const store = defineStore({
state: () => ({ count: 0 }),
actions: {
increment() { this.count++ },
},
getters: {
doubled() { return this.count * 2 },
},
})
function Counter() {
const state = useStore(store)
return (
<div>
<div>Count: {state.count}</div>
<div>Doubled: {state.doubled}</div>
<button onClick={store.increment}>Increment</button>
</div>
)
}
User Reviews (0)
Write a Review
No reviews yet
Statistics
User Rating
Rate this Skill