@nicer-toolbox/use-sticky-state

1.0.4 • Public • Published

Nicer Toolbox

Use Sticky State

Persisting React State in localStorage

NPM JavaScript Style Guide

Usage

function App() {
  const [count, setCount] = useStickyState(0, 'count')

  return (
    <div className='App'>
      <h1>Counter</h1>
      <p>Current count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  )
}

Code Behind The Scenes

function useStickyState(defaultValue, key) {
  const [value, setValue] = React.useState(() => {
    const stickyValue = window.localStorage.getItem(key)
    return stickyValue !== null ? JSON.parse(stickyValue) : defaultValue
  })
  React.useEffect(() => {
    window.localStorage.setItem(key, JSON.stringify(value))
  }, [key, value])
  return [value, setValue]
}

Package Sidebar

Install

npm i @nicer-toolbox/use-sticky-state

Weekly Downloads

3

Version

1.0.4

License

MIT

Unpacked Size

7.88 kB

Total Files

6

Last publish

Collaborators

  • maks112v