1.3.4 • Published 4 months ago

@zedux/immer v1.3.4

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

@zedux/immer

The official Immer integration for Zedux. This is an addon package, meaning it doesn't have any own dependencies or re-export any APIs from other packages. It uses peer dependencies instead, expecting you to download the needed packages yourself.

See the documentation for this package.

Installation

This package has a peer dependency on the @zedux/atoms package and on Immer itself. Ensure that @zedux/atoms is installed at the same version as this package:

npm install immer @zedux/atoms @zedux/immer # npm
yarn add immer @zedux/atoms @zedux/immer # yarn
pnpm add immer @zedux/atoms @zedux/immer # pnpm

The @zedux/react package already includes @zedux/atoms. To use Immer in React apps, install this package alongside @zedux/react instead:

npm install immer @zedux/react @zedux/immer # npm
yarn add immer @zedux/react @zedux/immer # yarn
pnpm add immer @zedux/react @zedux/immer # pnpm

Usage

See the Zedux docs for full usage details.

Simple example:

import { injectImmerStore } from '@zedux/immer'
import { api, atom } from '@zedux/react'

const loginFormAtom = atom('loginForm', () => {
  const store = injectImmerStore({ email: '', password: '' })

  return api(store).setExports({ produce: store.produce })
})

function LoginForm() {
  const [state, { produce }] = useAtomState(loginFormAtom)

  return (
    <>
      <input
        onChange={event =>
          produce(state => {
            state.email = event.target.value
          })
        }
        value={state.email}
      />
      <input
        onChange={event =>
          produce(state => {
            state.password = event.target.value
          })
        }
        type="password"
        value={state.password}
      />
    </>
  )
}

Exports

This package exports the following APIs:

Classes

Factories

Injectors

Contributing, License, Etc

See the top-level README for all the technical stuff.

2.0.0-beta.8

4 months ago

2.0.0-beta.7

4 months ago

2.0.0-rc.0

4 months ago

2.0.0-beta.6

4 months ago

2.0.0-beta.5

4 months ago

1.3.4

5 months ago

2.0.0-beta.2

5 months ago

2.0.0-beta.4

5 months ago

2.0.0-beta.3

5 months ago

1.3.3

5 months ago

1.3.2

5 months ago

1.3.1

6 months ago

2.0.0-beta.1

6 months ago

2.0.0-beta.0

6 months ago

1.3.0

7 months ago

2.0.0-alpha.0

9 months ago

2.0.0-alpha.1

9 months ago

1.2.3

10 months ago

1.3.0-rc.2

12 months ago

1.3.0-rc.0

12 months ago

1.3.0-rc.1

12 months ago

1.2.2

1 year ago

1.2.2-rc.0

1 year ago

1.2.1

1 year ago

1.2.0

1 year ago

1.1.1

2 years ago

1.1.0

2 years ago

1.2.0-rc.1

2 years ago

1.2.0-rc.0

2 years ago

1.1.0-rc.0

2 years ago

1.0.2

2 years ago

1.0.3

2 years ago

1.0.1

2 years ago

0.5.11

2 years ago

1.0.0

2 years ago

1.0.0-rc.0

2 years ago

0.5.10

2 years ago

0.5.9

2 years ago

0.5.8

2 years ago

0.5.7

2 years ago