# @bigbinary/neeto-trash-frontend 中文文档

规范地址：https://npmcn.com/package/%40bigbinary/neeto-trash-frontend/

版本：3\.2\.3
npm 元数据更新时间：2026-10-29T10:29:16.600Z
中文译文更新时间：2026-11-08T02:17:22.140Z
软件包许可：UNLICENSED

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40bigbinary/neeto-trash-frontend
原文对照：https://npmcn.com/package/%40bigbinary/neeto-trash-frontend/?lang=original
项目主页：https://github.com/bigbinary/neeto-trash-nano

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：380 kB，122 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.13
- 运行依赖：3 个
- peer 依赖：qs 6\.16\.2，url 0\.11\.4，yup 0\.32\.11，antd 5\.22\.1，util ^0\.12\.5，axios 1\.20\.0，ramda 0\.29\.0，react 18\.3\.1，buffer ^6\.0\.3，formik 2\.4\.6，i18next 22\.5\.1，zustand 4\.4\.2，dompurify 3\.4\.17，js-logger 1\.6\.1，react-dom 18\.3\.1，classnames 2\.5\.1，stream-http 3\.2\.0，tailwindcss 4\.1\.17，lucide-react ^1\.8\.0，react-helmet ^6\.1\.0，os-browserify 0\.3\.0，react-i18next 12\.3\.1，vm-browserify 1\.1\.2，@babel/runtime 7\.29\.7，react-toastify 8\.0\.2，tty-browserify 0\.0\.1，path-browserify ^1\.0\.1，https-browserify 1\.0\.0，mixpanel-browser 2\.45\.0，react-router-dom 5\.3\.3，crypto-browserify 3\.12\.1，source-map-loader 4\.0\.1，stream-browserify ^3\.0\.0，@bigbinary/neetoui 8\.8\.3，@honeybadger-io/js 6\.10\.1，@bigbinary/neeto-cist 1\.0\.17，@honeybadger-io/react 6\.1\.25，@tanstack/react-query 5\.59\.20，@bigbinary/neeto-atoms 1\.1\.2，@bigbinary/neeto-icons 1\.20\.89，@bigbinary/neeto-molecules 5\.9\.10，@tanstack/react-query-devtools 5\.59\.20，@bigbinary/neeto-commons-frontend 4\.14\.5，@bigbinary/neeto-filters-frontend 4\.5\.2
- 首次发布：2026-07-14T03:51:25.469Z
- 最新版本发布：2026-10-29T10:29:16.341Z
- 近 30 天下载量：6498（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：8（近 12 个月 8 个）

## 中文简介

一个回波作为新纳米结构,配置,数据等的真理来源.

## 安装

```sh
npm install @bigbinary/neeto-trash-frontend
```

也可以使用：`pnpm add @bigbinary/neeto-trash-frontend`、`yarn add @bigbinary/neeto-trash-frontend`、`bun add @bigbinary/neeto-trash-frontend`

## README

# 需要轻而易举

这个 `neeto-trash-nano` 充当了新纳米结构,配置,数据等的真实来源.

## 目录

1.  [用主机应用程序开发](https://npmcn.com/package/%40bigbinary/neeto-trash-frontend/#readme-development-with-host-application)
    -   [发动机](https://npmcn.com/package/%40bigbinary/neeto-trash-frontend/#readme-engine)
        -   [安装](https://npmcn.com/package/%40bigbinary/neeto-trash-frontend/#readme-installation)
        -   [设置发电机](https://npmcn.com/package/%40bigbinary/neeto-trash-frontend/#readme-setup-generators)
        -   [使用量](https://npmcn.com/package/%40bigbinary/neeto-trash-frontend/#readme-usage)
    -   [前端软件包](https://npmcn.com/package/%40bigbinary/neeto-trash-frontend/#readme-frontend-package)
        -   [安装](https://npmcn.com/package/%40bigbinary/neeto-trash-frontend/#readme-installation-1)
        -   [发展指示](https://npmcn.com/package/%40bigbinary/neeto-trash-frontend/#readme-instructions-for-development)
        -   [使用量](https://npmcn.com/package/%40bigbinary/neeto-trash-frontend/#readme-usage-1)
2.  [出版指令](https://npmcn.com/package/%40bigbinary/neeto-trash-frontend/#readme-instructions-for-publishing)

## 用主机应用程序开发

### 发动机

#### 安装

1.  将此行添加到您的应用程序的 Gemfile 中 :
    
    ```ruby
     source "NEETO_GEM_SERVER_URL" do
       # ..existing gems
    
       gem 'neeto-trash-engine'
     end
    ```
    
2.  然后执行:
    
    ```shell
    bundle install
    ```
    
3.  将此行添加到您的应用程序 `config/routes.rb` 文件
    
    ```ruby
     mount NeetoTrashEngine::Engine, at: "/neeto_trash"
    ```
    
4.  在表格中添加所需的迁移 `db/migrate` 文件夹。 运行以下命令从引擎复制迁移 到主机应用程序.
    
    ```shell
    bundle exec rails neeto_trash_engine:install:migrations
    bundle exec rails db:migrate
    ```
    

#### 设置发电机

1.  `rails g neeto_trash_engine:install`
    
    设置主机应用程序使用引擎所需的一切 :
    
    -   挂载 `NeetoTrashEngine::Engine` 时间 `/neeto_trash` 内 `config/routes.rb`。 。 。 .
    -   副本 `app/lib/neeto_trash_engine/callbacks.rb`,授权 授权/组织范围决定 改为:.
    -   副本 `config/initializers/neeto_trash_engine.rb`,用于配置 保留期,当前用户解析器,以及回调类.
    -   添加一个 `trash_cleanup` 条目为 `config/scheduled_jobs.yml` 运行 `NeetoTrashEngine::CleanupJob` 日报. 若为 `config/scheduled_jobs.yml` 不存在,生成器打印出要手工添加的条目,而不是 创建文件.
    
    再次运行生成器是安全的: 它跳过目标文件已经存在或已经包含该文件的任何步骤 预期进入.
    
2.  `rails g neeto_trash_engine:trashable Article`
    
    产生迁移( E)`db/migrate/add_neeto_trash_to_articles.rb`),添加一模型需要支持的列 丢弃 : `is_trashed`, (中文(简体) ), `trashed_at`页:1 `trashed_by` 参考文献 `users`综合索引 `[:is_trashed, :trashed_at]`。表格名称从模型中取出,当它已经存在 `trashed_by` 引用类型匹配主机应用程序所配置的主密钥类型(例如:. `:uuid`) (中文(简体) ).
    

#### 使用量

模式包括: `NeetoTrashEngine::Trashable` 可以推翻他们的删除方法. 单项删除和保留清理呼叫 `permanently_delete!`默认 改为 `destroy!`。批量删除呼叫 `permanently_delete_all!` 核定员额 范围。 它的默认调用 `destroy_all` 当一个召回停止删除时, 所以大宗交易会退回.

同步执行必须立即从垃圾堆中隐藏记录 列出并在交易完成后进行清理。 用于包括 `NeetoCommonsBackend::Deletable`,在两种删除路径中使用现有方法:

```ruby
def permanently_delete!
  destroy_async
end

def self.permanently_delete_all!
  destroy_async_multiple(pluck(:id))
end
```

批量覆盖在一个更新中隐藏选中的记录并排队一个任务 承诺之后。 保留清理保持其每笔记录锁和资格检查.

覆盖必须保留主机模型的破坏回调和依赖性清理. 使用 `destroy!` 或应用程序的现有删除服务用于物理删除. 要同步删除,背景工作者必须进行这种清理.

1.  用您的工程名称替换 NeetoTrashNano
    
    创建一个 `script.rb` 在工程根中将脚本从以下文件中粘贴.
    
    [替换工程名称脚本](https://npmcn.com/package/%40bigbinary/neeto-trash-frontend/docs/engine/replace-project-name-script.md)
    
2.  使用以下命令运行文件 :
    
    ```shell
       ruby script.rb
    ```
    

页:1

-   别把文件交出来.
-   项目名称应在PascalCase中给出.

### 前端软件包

#### 安装

1.  添加数据 `neeto-trash-frontend` 软件包到 `package.json`
    
    ```shell
    yarn add @bigbinary/neeto-trash-frontend
    ```
    

### 发展指示

检查 [前端软件包开发指南](https://neeto-engineering.neetokb.com/p/a-d34cb4b0) 分步执行 指示开发前端软件包.

#### 使用量

1.  导入后挂载垃圾页 `TrashList` 从“ @ bigbinary/ neto- trash- prefend” 开始,并告诉它哪些项目类型 您的应用程序垃圾 :
    
    ```javascript
    import React from "react";
    
    import { TrashList } from "@bigbinary/neeto-trash-frontend";
    
    const Trash = () => <TrashList itemTypes={{ Article: { label: "Articles" } }} />;
    
    export default Trash;
    ```
    
2.  将应用程序菜单中的删除动作线化, 将项目移动到垃圾堆中, 而不是硬删除 :
    
    ```javascript
    import { MoveToTrashAction } from "@bigbinary/neeto-trash-frontend";
    
    <MoveToTrashAction ids={[article.id]} type="Article" onSuccess={refetchArticles} />;
    ```
    
    套件还出口 `TrashBanner`, (中文(简体) ), `RestoreButton`, (中文(简体) ), `DeletePermanentlyAction`,数据钩 (单位:千美元)`useFetchTrashedItems`, (中文(简体) ), `useMoveToTrash`, (中文(简体) ), `useRestore`, (中文(简体) ), `usePermanentlyDelete`, (中文(简体) ), `useInvalidateTrashList`, (中文(简体) ), `getDaysUntilDeletion`,以及 `QUERY_KEYS`。 。 。 .
    
3.  当您从自己的端点丢弃时, 回收站页面保持同步 .
    
    如果将项目移动到垃圾桶 `MoveToTrashAction` 编号 : `useMoveToTrash` (步骤2),回收页列表和计数 自动刷新 —— 钩子会使您的垃圾查询无效, 所以没有额外的工作可做 .
    
    不过,大多数应用软件都是垃圾 **拥有** 删除端点代替, 因此同一请求可以运行特定应用 副作用(分析、级联)和刷新自己的清单。 这条路从不运行 包的突变,所以 垃圾页一直呆滞, 直到您自己取消其查询 。 丢弃 `useInvalidateTrashList` 进入变异的 `onSuccess`数字 :
    
    ```javascript
    import { useInvalidateTrashList } from "@bigbinary/neeto-trash-frontend";
    
    const useDestroyArticle = () => {
      const queryClient = useQueryClient();
      const invalidateTrashList = useInvalidateTrashList();
    
      return useMutation({
        mutationFn: articlesApi.destroy,
        onSuccess: () => {
          queryClient.invalidateQueries({ queryKey: [ARTICLE_LIST] }); // your list
          invalidateTrashList(); // refreshes the Trash page list + counts
        },
      });
    };
    ```
    
    `useInvalidateTrashList` 返回无效的回调 `QUERY_KEYS.TRASHED_ITEMS`,所以你从来没有硬化代码 垃圾查询密钥 。 (内部恢复和永久删除) `TrashList` 它本身已经失效了——这只是 用于您的移动到崩溃路径 。)
    

## 出版指令

咨询 [构建和释放软件包](https://neeto-engineering.neetokb.com/articles/building-and-releasing-packages) 指南 详细介绍如何出版.

## 常见问题

### @bigbinary/neeto-trash-frontend 是什么？

一个回波作为新纳米结构,配置,数据等的真理来源\.

### 如何安装 @bigbinary/neeto-trash-frontend？

在项目目录运行 npm install @bigbinary/neeto-trash-frontend，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：qs（6\.16\.2）、url（0\.11\.4）、yup（0\.32\.11）、antd（5\.22\.1）、util（^0\.12\.5）、axios（1\.20\.0）、ramda（0\.29\.0）、react（18\.3\.1）、buffer（^6\.0\.3）、formik（2\.4\.6）、i18next（22\.5\.1）、zustand（4\.4\.2）、dompurify（3\.4\.17）、js-logger（1\.6\.1）、react-dom（18\.3\.1）、classnames（2\.5\.1）、stream-http（3\.2\.0）、tailwindcss（4\.1\.17）、lucide-react（^1\.8\.0）、react-helmet（^6\.1\.0）、os-browserify（0\.3\.0）、react-i18next（12\.3\.1）、vm-browserify（1\.1\.2）、@babel/runtime（7\.29\.7）、react-toastify（8\.0\.2）、tty-browserify（0\.0\.1）、path-browserify（^1\.0\.1）、https-browserify（1\.0\.0）、mixpanel-browser（2\.45\.0）、react-router-dom（5\.3\.3）、crypto-browserify（3\.12\.1）、source-map-loader（4\.0\.1）、stream-browserify（^3\.0\.0）、@bigbinary/neetoui（8\.8\.3）、@honeybadger-io/js（6\.10\.1）、@bigbinary/neeto-cist（1\.0\.17）、@honeybadger-io/react（6\.1\.25）、@tanstack/react-query（5\.59\.20）、@bigbinary/neeto-atoms（1\.1\.2）、@bigbinary/neeto-icons（1\.20\.89）、@bigbinary/neeto-molecules（5\.9\.10）、@tanstack/react-query-devtools（5\.59\.20）、@bigbinary/neeto-commons-frontend（4\.14\.5）、@bigbinary/neeto-filters-frontend（4\.5\.2）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @bigbinary/neeto-trash-frontend 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @bigbinary/neeto-trash-frontend 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @bigbinary/neeto-trash-frontend 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22\.13。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @bigbinary/neeto-trash-frontend 可以商用吗？

@bigbinary/neeto-trash-frontend 使用 UNLICENSED 许可。作者声明为 UNLICENSED，即不授予公开使用许可（与公共领域的 Unlicense 不同）。使用前需获得作者授权。以上为概括，不构成法律意见，请以许可原文为准。

### @bigbinary/neeto-trash-frontend 的下载量有多少？

根据 npm 官方下载统计，@bigbinary/neeto-trash-frontend 在 2026/10/08 – 2026/11/06 这 30 天内被下载 6,498 次，日均约 217 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @bigbinary/neeto-trash-frontend 还在维护吗？

最新版本 3\.2\.3 发布于 2026/10/29（10 天前）；至今共发布 8 个版本，其中过去 12 个月发布了 8 个；首次发布于 2026/07/14。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

