[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2879":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":24,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":19,"lastSyncTime":34,"discoverSource":35},2879,"immer","immerjs\u002Fimmer","immerjs","Create the next immutable state by mutating the current one","https:\u002F\u002Fimmerjs.github.io\u002Fimmer\u002F",null,"JavaScript",28948,871,146,35,0,5,21,2,73.42,"MIT License",false,"main",true,[26,27,28,29,30],"immutable","immutables","reducer","redux","state-tree","2026-06-12 04:00:16","\u003Cimg src=\"images\u002Fimmer-logo.svg\" height=\"200px\" align=\"right\"\u002F>\n\n# Immer\n\n[![npm](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fimmer.svg)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fimmer) [![Build Status](https:\u002F\u002Fgithub.com\u002Fimmerjs\u002Fimmer\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Fimmerjs\u002Fimmer\u002Factions?query=branch%3Amain) [![Coverage Status](https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002Fimmerjs\u002Fimmer\u002Fbadge.svg?branch=main)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Fimmerjs\u002Fimmer?branch=main) [![code style: prettier](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode_style-prettier-ff69b4.svg)](https:\u002F\u002Fgithub.com\u002Fprettier\u002Fprettier) [![OpenCollective](https:\u002F\u002Fopencollective.com\u002Fimmer\u002Fbackers\u002Fbadge.svg)](#backers) [![OpenCollective](https:\u002F\u002Fopencollective.com\u002Fimmer\u002Fsponsors\u002Fbadge.svg)](#sponsors) [![Gitpod Ready-to-Code](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGitpod-Ready--to--Code-blue?logo=gitpod)](https:\u002F\u002Fgitpod.io\u002F#https:\u002F\u002Fgithub.com\u002Fimmerjs\u002Fimmer)\n\n_Create the next immutable state tree by simply modifying the current tree_\n\nWinner of the \"Breakthrough of the year\" [React open source award](https:\u002F\u002Fosawards.com\u002Freact\u002F) and \"Most impactful contribution\" [JavaScript open source award](https:\u002F\u002Fosawards.com\u002Fjavascript\u002F) in 2019\n\n## Contribute using one-click online setup\n\nYou can use Gitpod (a free online VSCode like IDE) for contributing online. With a single click it will launch a workspace and automatically:\n\n- clone the immer repo.\n- install the dependencies.\n- run `yarn run start`.\n\nso that you can start coding straight away.\n\n[![Open in Gitpod](https:\u002F\u002Fgitpod.io\u002Fbutton\u002Fopen-in-gitpod.svg)](https:\u002F\u002Fgitpod.io\u002Ffrom-referrer\u002F)\n\n## Documentation\n\nThe documentation of this package is hosted at https:\u002F\u002Fimmerjs.github.io\u002Fimmer\u002F\n\n## Support\n\nDid Immer make a difference to your project? Join the open collective at https:\u002F\u002Fopencollective.com\u002Fimmer!\n\n## Release notes\n\nhttps:\u002F\u002Fgithub.com\u002Fimmerjs\u002Fimmer\u002Freleases\n","Immer 是一个用于简化不可变数据处理的 JavaScript 库。其核心功能允许开发者通过直接修改现有状态来创建新的不可变状态，而无需手动深拷贝对象或编写复杂的更新逻辑，这极大地提高了代码的可读性和开发效率。该库支持包括 Redux 在内的多种状态管理场景，并且特别适用于需要频繁更新复杂状态树的应用程序中。凭借其简洁的 API 和强大的性能优化，Immer 成为了前端开发领域内处理不可变数据时的一个重要工具。","2026-06-11 02:51:23","top_language"]