diff --git a/website/i18n/zh-CN/docusaurus-plugin-content-docs/current/api.md b/website/i18n/zh-CN/docusaurus-plugin-content-docs/current/api.md index a03f953d..3ade3732 100644 --- a/website/i18n/zh-CN/docusaurus-plugin-content-docs/current/api.md +++ b/website/i18n/zh-CN/docusaurus-plugin-content-docs/current/api.md @@ -9,13 +9,14 @@ title: API 概览 | 导出名称 | 描述 | 章节 | | --- | --- | --- | -| `(default)` | Immer 核心 API,通常命名为 `produce`: `import {produce} from "immer"` | [Produce](./produce.mdx) | +| `produce` | Immer 核心 API:`import {produce} from "immer"` | [Produce](./produce.mdx) | | `applyPatches` | 给定一个基本 state 或 draft,以及一组 patches ,应用 patches | [Patches](./patches.mdx) | | `castDraft` | 将任何不可变类型转换为其可变对应物。这只是一个转换,实际上并没有做任何事情。 | [TypeScript](./typescript.mdx) | | `castImmutable` | 将任何可变类型转换为其不可变对应物。这只是一个转换,实际上并没有做任何事情。 | [TypeScript](./typescript.mdx) | | `createDraft` | 给定一个基本 state,创建一个可变 draft,任何修改都将被记录下来 | [Async](./async.mdx) | | `current` | 给定一个 draft 对象(不必是对象的根结点),对 draft 的当前状态进行快照 | [Current](./current.md) | | `Draft` | 暴露的 TypeScript 类型以将不可变类型转换为可变类型 | [TypeScript](./typescript.mdx) | +| `enableArrayMethods()` | 启用优化的数组方法处理,改善大量数组操作的性能。 | [Array Methods](./array-methods.md) | | `enableMapSet()` | 启用对 `Map` 和 `Set` 集合的支持。 | [Installation](./installation.mdx#pick-your-immer-version) | | `enablePatches()` | 启用对 JSON patches 的支持 | [Installation](./installation#pick-your-immer-version) | | `finishDraft` | 给定使用 `createDraft` 创建的 draft,冻结 draft 并生成并返回下一个不可变状态,该状态捕获所有更改 | [Async](./async.mdx) | @@ -28,23 +29,17 @@ title: API 概览 | `nothing` | 可以从 recipe 返回的值,以指示应生成 `undefined` | [Return](./return.mdx) | | `original` | 给定一个 draft 对象(不必是对象的根结点),返回原始状态树中相同路径的原始对象(如果存在) | [Original](./original.md) | | `Patch` | 暴露的 TypeScript 类型,描述(反向)patches 对象的形状 | [Patches](./patches.mdx) | -| `produce` | Immer 的核心 API,也暴露为 `default` 导出 | [Produce](./produce.mdx) | | `produceWithPatches` | 与 `produce` 相同,但它不仅返回生成的对象,还返回一个由 `[result, patch, inversePatches]` 组成的元组 | [Patches](./patches.mdx) | | `setAutoFreeze` | 启用/禁用递归的自动冻结。默认启用 | [Freezing](./freezing.mdx) | | `setUseStrictShallowCopy` | 可用于启用严格的浅拷贝。 如果启用,immer 会尽可能多地拷贝不可枚举属性 | [Classes](./complex-objects.md) | +| `setUseStrictIteration` | 控制遍历行为:传入 `false` 使用宽松遍历(仅处理可枚举属性,性能更好),传入 `true` 使用严格遍历(包括 symbol 和不可枚举属性)。默认禁用(宽松遍历)。 | | ## 导入 immer -`produce` 作为默认导出,但也可以选择将其用作名称导入,因为这有利于一些较旧的项目设置。所以下面的导入都是正确的,这里推荐第一个: +大多数情况下,只需从 Immer 导入 `produce`: ```javascript import {produce} from "immer" -import {produce} from "immer" - -const {produce} = require("immer") -const produce = require("immer").produce -const produce = require("immer").default - -import unleashTheMagic from "immer" -import {produce as unleashTheMagic} from "immer" ``` + +旧版本也提供 `produce` 的默认导出(例如 `import produce from "immer"`)。为了改善生态系统兼容性,当前版本不再提供默认导出。