immer README

The project's README from github.com/immerjs/immer. As one markdown file: README.md.

Immer

npm Build Status Coverage Status code style: prettier OpenCollective OpenCollective Gitpod Ready-to-Code

Create the next immutable state tree by simply modifying the current tree

Winner of the "Breakthrough of the year" React open source award and "Most impactful contribution" JavaScript open source award in 2019

Contribute using one-click online setup

You can use Gitpod (a free online VSCode like IDE) for contributing online. With a single click it will launch a workspace and automatically:

so that you can start coding straight away.

Open in Gitpod

Documentation

The documentation of this package is hosted at https://immerjs.github.io/immer/

Support

Did Immer make a difference to your project? Join the open collective at https://opencollective.com/immer!

Release notes

https://github.com/immerjs/immer/releases

immer (immerjs/immer)

Searching Database…

29K ·GitHub
Что это такое?Immer — это небольшая JavaScript-библиотека для работы с неизменяемым (immutable) состоянием: вы пишете код, который изменяет текущее состояние, а библиотека сама создаёт для вас следующее неизменяемое дерево состояния.
Это фреймворк, который я внедряю в проект, или библиотека, которую я просто вызываю из своего кода?Обычная библиотека — один npm-пакет без рантайм-зависимостей, который вы вызываете из своего JavaScript-кода, а не фреймворк, диктующий структуру приложения.
Как добавить её в проект?Установите её из npm — npm install immer (или yarn add immer) — и импортируйте как любой другой пакет; полная документация находится на immerjs.github.io/immer.
Нужно ли ставить что-то ещё вместе с ней?Нет. У пакета ноль рантайм-зависимостей, поэтому достаточно любого JavaScript-окружения с npm или yarn.
Она привязана к React, или можно использовать с чем угодно?Это обычный JavaScript, поэтому использовать её можно где угодно, хотя больше всего она известна в мире React — в 2019 году она получила награду React Open Source Award — и популярна для редьюсеров в стиле Redux.
Она работает только в Node или тоже в браузере?Это чистый JavaScript без нативных частей, поэтому она работает везде, где работает JavaScript — в браузере для веб-приложений и в Node на сервере.
Как на самом деле выглядит код, написанный с Immer?Вы передаёте ей текущее состояние и функцию, которая изменяет черновую копию (draft); Immer отслеживает, что вы изменили, и возвращает совершенно новое неизменяемое состояние, так что вам не нужно вручную делать spread и копирование.
Есть ли в ней описания типов для Flow или TypeScript?В репозитории поддерживаются типы Flow — тестовый скрипт запускает yarn flow check для папки __tests__/flow — так что API типизирован для пользователей Flow.
Могу ли я покопаться в коде, не настраивая локальное окружение для разработки?Да. В README есть воркспейс Gitpod в один клик: он клонирует репозиторий, устанавливает зависимости и запускает 'yarn run start', так что можно сразу писать код прямо в браузере.
Проект ещё живой?Да — он не архивирован, у него есть автоматизированный CI для релизов (release.yml) наряду с воркфлоу тестов и документации, он развивается с 2017 года, а в README есть раздел с заметками о релизах.
What are similar projects?normalizr, Recoil, zustand, nuqs, redux-form, reactstrap, reselect, redux
Creator
immerjs
Size
7.3 MB
Stars
29K
Age
8y
Commits · 90 Days