
Product
Introducing Webhook Events for Alert Changes
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.
@kwhitley/use-store
Advanced tools
Even with the advent of React hooks, cross-component shared state
is still being solved with either context/provider hooks (messy), or traditional
stores like redux/mobx (messier). This store more or less mirrors the signature of
the incredibly elegant useState() hook, with optional local persistence built-in.
yarn add -D @kwhitley/use-store
returns [ value, setValue ] pair, identical to useState() in React
import { useStore } from '@kwhitley/use-store'
// must be called inside a React component
let [ value, setValue ] = useStore('foo')
// value = undefined
setValue(3)
// value = 3
namespace (string) required - this is the reference you'll share throughout the app for a specific value. E.g. useStore('myValue')initialValue (anything) optional - optional default value which will be set by the first component that encounters this hook on a given namespace. This will be ignored if persist is enabled and value found locally.options (object) optional - options for the hook (see below):
persist (boolean, default=false)useStore() aboveFor manually setting initial values and persist options so individual components don't have to (also to solve race conditions)
import { globalStore } from '@kwhitley/use-store'
globalStore.set('foo', 'bar', { persist: true })
// ComponentA.js
import React from 'react'
import { useStore } from '@kwhitley/use-store'
export default function ComponentA() {
let [ value, setValue ] = useStore('myValue', 3)
return (
<div>ComponentA:value = { value }</div>
<button onClick={() => setValue(value + 1)}>
Increment
</button>
)
}
// ComponentB.js
import React from 'react'
import { useStore } from '@kwhitley/use-store'
import ComponentA from './ComponentA'
export default function ComponentB() {
let [ value, setValue ] = useStore('myValue', 3)
return (
<div>
ComponentB:value = { value } // this will increment as ComponentA clicks are registered
<ComponentA />
</div>
)
}
FAQs
Cross-component, persistable useState() effect, without context
We found that @kwhitley/use-store demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.

Security News
ENISA has become a CVE Program Root, giving the EU a central authority for coordinating vulnerability reporting, disclosure, and cross-border response.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.