Skip to content

store

A deeply reactive object for managing state.

/**
* Create a deeply reactive store.
* @param initial Initial object value for the store.
* @returns Store object with reactive properties and methods.
*/
store<T extends object = {}>(initial: T): Store<T>

Create a deeply reactive object with nested signal-like properties. Each property is a signal, and you can update, set, or read the entire store or any nested value. Use computed() to get a plain snapshot.

import { store } from '@hellajs/store';
// Create a nested store
const userStore = store({
name: 'John Doe',
age: 30,
address: {
street: '123 Main St',
city: 'New York',
},
});
// Get a plain object snapshot
const user = userStore.computed();
console.log(user);
// { name: 'John Doe', age: 30, address: { street: '123 Main St', city: 'New York' } }
// Update nested property
userStore.update({
address: {
city: 'San Francisco',
},
});
console.log(userStore.address.city());
// 'San Francisco'
// Set property directly
userStore.address.street.set('789 Oak St');
console.log(userStore.address.street());
// '789 Oak St'