JavaScript-библиотека для предсказуемого и удобного в поддержке управления глобальным состоянием в React и других библиотеках представления.
immerjs/immer
Библиотека JavaScript для обновления неизменяемого состояния через мутацию черновой копии текущего состояния.
- Звёзды
- 28,988
- Форки
- 901
- Открытые issues
- 46
- Последний коммит
- 14 часов назад
Что это?
Immer позволяет обновлять неизменяемое состояние с помощью обычного кода с мутациями. Изменения вносятся в черновой proxy текущего состояния, после чего Immer создает новое неизменяемое дерево состояния, не затрагивая исходное. Благодаря этому при обновлении не нужно вручную копировать вложенные объекты и массивы.
Библиотеку часто используют в редьюсерах Redux и другом коде управления состоянием, где нужны неизменяемые обновления. В основе API — функция produce, которая принимает исходное состояние и функцию-рецепт. Библиотека распространяется как npm-пакет immer. Документация размещена на сайте проекта.
Ключевые возможности
- 01Обновляйте состояние, изменяя черновик вместо ручного копирования объектов.
- 02Создает новое неизменяемое состояние, не меняя исходное.
- 03Основу API составляет функция produce, принимающая исходное состояние и функцию-рецепт.
- 04Распространяется как npm-пакет immer.
Сценарии использования
- Упрощение неизменяемых обновлений в редьюсерах Redux.
- Обновление глубоко вложенного состояния в React и других UI-приложениях.
- Написание логики состояния, которой нужны история отмены или отслеживание изменений с помощью неизменяемых снимков.
Быстрый старт
- 1
Инструкции по установке можно найти в документации на immerjs.github.io/immer
- 2
Чтобы внести вклад в проект, откройте его в Gitpod: он автоматически установит зависимости и выполнит yarn run start
Темы
Частые вопросы
- Что такое immer?
- Библиотека JavaScript для обновления неизменяемого состояния через мутацию черновой копии текущего состояния. Immer позволяет обновлять неизменяемое состояние с помощью обычного кода с мутациями. Изменения вносятся в черновой proxy текущего состояния, после чего Immer создает новое неизменяемое дерево состояния, не затрагивая исходное. Благодаря этому при обновлении не нужно вручную копировать вложенные объекты и массивы.
- immer можно использовать бесплатно? Какая у него лицензия?
- immer распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- immer всё ещё поддерживается?
- Активно поддерживается. Последний коммит в immer — 21 окт. 2026 г..
- Для чего можно использовать immer?
- Упрощение неизменяемых обновлений в редьюсерах Redux. Обновление глубоко вложенного состояния в React и других UI-приложениях. Написание логики состояния, которой нужны история отмены или отслеживание изменений с помощью неизменяемых снимков.
- Как установить immer?
- Инструкции по установке можно найти в документации на immerjs.github.io/immer Чтобы внести вклад в проект, откройте его в Gitpod: он автоматически установит зависимости и выполнит yarn run start
- Где скачать immer?
- Исходный код и инструкции по установке — на GitHub: https://github.com/immerjs/immer
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Небольшая библиотека управления состоянием для React на основе хуков, которой не нужны провайдеры.
Официальная библиотека для связи Redux с React: подключает хранилища Redux к компонентам React с помощью хуков и Provider.
Библиотека TypeScript для создания мемоизированных селекторов, вычисляющих производные данные на основе Redux или другого обычного состояния JavaScript.
Библиотека в стиле Redux middleware, которая сохраняет состояние store в хранилище и восстанавливает его при запуске приложения.
Десктопный отладчик для React и React Native: позволяет изучать состояние приложений, сетевые запросы, логи и ошибки.