Immer项目安装与版本选择指南

Immer项目安装与版本选择指南

immer immer 项目地址: https://gitcode.com/gh_mirrors/imm/immer

什么是Immer

Immer是一个JavaScript库,它通过使用不可变数据结构来简化状态管理。其核心思想是允许你使用可变的方式编写代码,但实际上产生的是不可变的数据结构。这种方式既保持了代码的简洁性,又确保了数据的不可变性。

安装Immer

Immer可以作为一个直接依赖项安装,并且可以在任何ES5环境中运行。以下是几种常见的安装方式:

包管理器安装

  1. 使用Yarn安装

    yarn add immer
    
  2. 使用NPM安装

    npm install immer
    

CDN引入

对于不使用包管理器的项目,可以通过CDN直接引入:

<script src="https://unpkg.com/immer"></script>

或者使用JSDelivr:

<script src="https://cdn.jsdelivr.net/npm/immer"></script>

重要提示:使用CDN时,建议指定具体版本号,以避免未来更新导致意外问题。例如:

<script src="https://unpkg.com/immer@6.0.3/dist/immer.umd.production.min.js"></script>

如果需要开发版本,可以将production.min替换为development

版本与功能选择

从Immer 6版本开始,为了保持库的精简,一些不常用的功能被设计为可选功能,需要显式启用。这样可以确保在生产环境中打包时,不会包含未使用的功能代码。

可选功能列表

| 功能 | 描述 | 启用方法 | |------|------|----------| | ES2015 Map和Set支持 | 使Immer能够操作原生Map和Set集合 | enableMapSet() | | JSON Patch支持 | 允许Immer跟踪对草稿对象的所有更改,用于通过JSON Patch通信变更 | enablePatches() |

使用示例

如果需要使用produce处理Map对象,需要在应用程序入口处启用此功能:

// 在应用程序入口处
import {enableMapSet} from "immer"

enableMapSet()

// ...后续代码
import {produce} from "immer"

const usersById_v1 = new Map([
  ["michel", {name: "Michel Weststrate", country: "NL"}]
])

const usersById_v2 = produce(usersById_v1, draft => {
  draft.get("michel").country = "UK"
})

体积分析

基础Immer库大小约为3KB(gzip压缩后)。每个启用的插件会增加不到1KB的体积:

  • 基础导入:约5KB
  • 仅produce:约3.3KB
  • 启用MapSet支持:增加约0.7KB
  • 启用Patches支持:增加约0.8KB

兼容性考虑

旧版JavaScript环境

默认情况下,produce会尝试使用Proxy以获得最佳性能。但在以下环境中Proxy不可用:

  • Microsoft Internet Explorer
  • React Native(版本低于0.59,或在使用Hermes引擎且版本低于0.64的Android设备上)

在这些情况下,Immer会回退到ES5兼容的实现,功能相同但性能稍低。

版本注意事项

  • 从版本6开始,必须显式调用enableES5()来启用回退实现
  • 版本10完全移除了回退实现,不支持Proxy的浏览器/引擎将无法使用

总结

Immer提供了灵活的安装方式和可选的特性支持,使其能够适应各种项目需求。开发者可以根据项目实际情况选择合适的安装方式和需要启用的功能,在保持代码简洁性的同时,确保最佳的性能和兼容性。

immer immer 项目地址: https://gitcode.com/gh_mirrors/imm/immer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

内容概要:本文档详细介绍了利用Google Earth Engine (GEE) 平台对指定区域(位于中国广东省某地)进行遥感影像处理的一系列操作。首先,定义了研究区边界,并选取了 Landsat 8 卫星2023年8月至10月期间的数据,通过去云处理、归一化等预处理步骤确保数据质量。接着,基于预处理后的影像计算了地表温度(LST)、归一化植被指数(NDVI)、湿度指数(WET)、建筑指数(NDBSI)四个关键指标,并进行了主成分分析(PCA),提取出最重要的信息成分。为了进一步优化结果,还应用了像素二元模型对主成分分析的第一主成分进行了条件规范化处理,生成了最终的环境状态评估指数(RSEI)。最后,利用JRC全球表面水体数据集对水体区域进行了掩膜处理,保证了非水体区域的有效性。所有处理均在GEE平台上完成,并提供了可视化展示及结果导出功能。 适合人群:具备地理信息系统基础知识,对遥感影像处理有一定了解的研究人员或技术人员。 使用场景及目标:① 对特定区域的生态环境状况进行定量评估;② 为城市规划、环境保护等领域提供科学依据;③ 掌握GEE平台下遥感影像处理流程和技术方法。 其他说明:本案例不仅展示了如何使用GEE平台进行遥感影像处理,还涵盖了多种常用遥感指标的计算方法,如LST、NDVI等,对于从事相关领域的科研工作者具有较高的参考价值。此外,文中涉及的代码可以直接在GEE代码编辑器中运行,便于读者实践操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甄旖昀Melanie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值