Socket
Socket
Sign inDemoInstall

@rematch/immer

Package Overview
Dependencies
3
Maintainers
3
Versions
22
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @rematch/immer

Redux-Immer v6 plugin for Rematch. Provides immutable ability for rematch.


Version published
Maintainers
3
Install size
28.2 kB
Created

Readme

Source

Rematchjs

Rematch is Redux best practices without the boilerplate. No more action types, action creators, switch statements or thunks in less than 1.4 kilobytes.


Chat on slack Rematch CI Bundle size File size lerna https://img.shields.io/lgtm/grade/javascript/github/rematch/rematch?logo=typescript Gitpod Ready-to-Code

Documentation · Quickstart · Examples · Contribute · Licence

Features

Redux is an amazing state management tool, supported by a healthy middleware ecosystem and excellent devtools. Rematch builds upon Redux by reducing boilerplate and enforcing best practices. It provides the following features:

  • No configuration needed
  • Reduces Redux boilerplate
  • Built-in side-effects support
  • React Devtools support
  • TypeScript support
  • Supports dynamically adding reducers
  • Supports hot-reloading
  • Allows to create multiple stores
  • Supports React Native
  • Extendable with plugins
  • Many plugins available out of the box:

Are you ready to use Rematch?

In a few lines you can get easily asynchronous calls to an external API and data stored globally. It's amazing, with Redux you will needs tons of boilerplate, libraries and extra configuration.

type PlayersState = {
    players: PlayerModel[]
}

export const players = createModel<RootModel>()({
    state: {
        players: [],
    } as PlayersState,
    reducers: {
        SET_PLAYERS: (state: PlayersState, players: PlayerModel[]) => {
            return {
                ...state,
                players,
            }
        },
    },
    effects: (dispatch) => {
        const { players } = dispatch
        return {
            async getPlayers(): Promise<any> {
                let response = await fetch('https://www.balldontlie.io/api/v1/players')
                let { data }: { data: PlayerModel[] } = await response.json()
                players.SET_PLAYERS(data)
            },
        }
    },
})

Check it out, right now!

Redux vs Rematch

ReduxRematch
simple setup ‎‎✔
less boilerplate‎✔
readability‎✔
configurable‎ ✔‎✔
redux devtools‎✔‎✔
generated action creators‎✔
asyncthunks‎async/await

Migrate From Redux

Migrating from Redux to Rematch may only involve minor changes to your state management, and no necessary changes to your view logic. See the migration reference for the details.

Composable Plugins

Rematch and its internals are all built upon a plugin pipeline. As a result, developers can make complex custom plugins that modify the setup or add data models, often without requiring any changes to Rematch itself. See the plugins developed by the Rematch team or the API for creating plugins.

Contact & Support

Contributors

Thank you to all the people who have already contributed to rematch!

Made with contributors-img.

Licence

This project is licensed under the MIT license.

Keywords

FAQs

Last updated on 23 Feb 2021

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc