@berenjena/react-dev-panel

中文文档
2.5.1发布于 2026/06/22MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 6555

反应开发小组,拥有各种工具和公用事业.

中文使用文档
文档目录16 节
  1. 特征
  2. 安装
  3. 快速启动
  4. 控制类型
  5. 配置
  6. 自定义热键
  7. 从控制台打开
  8. 小组讨论会 主题
  9. 事件处理
  10. 生产中的缺陷
  11. 安全部门改革/下一个.js
  12. 文档
  13. API 参考
  14. useDevPanel(sectionName, controls, options?)
  15. 捐款
  16. 许可证

反应 Dev 面板

NPM Version npm package minimized gzipped size License: MIT Weekly Downloads

一个轻量级,型式安全的React开发面板,允许您在开发过程中实时控制组件状态和道具.

特征

  • 一个虎克单人 useDevPanel 钩子 - 没有提供者, 没有设置
  • 13 控制类型: 文本、 数字、 布尔、 选择、 颜色、 范围、 日期、 按钮、 本地套接字等
  • 自动持续: 控制值的可选本地Storage同步
  • 类型安全: IntelliSense 的完整类型脚本支持
  • 可主题: 21个内置主题+CSS自定义属性
  • 轻巧: ~16 KB gziped, 零运行时间依赖性

安装

npm install -D @berenjena/react-dev-panel

快速启动

import { useState } from "react";
import { useDevPanel } from "@berenjena/react-dev-panel";

function App() {
    const [name, setName] = useState("John");
    const [age, setAge] = useState(25);
    const [theme, setTheme] = useState("dark");

    useDevPanel("Settings", {
        name: { type: "text", value: name, onChange: setName },
        age: { type: "number", value: age, min: 0, max: 100, onChange: setAge },
        theme: { type: "select", value: theme, options: ["light", "dark"], onChange: setTheme },
    });

    return <div>Hello, {name}!</div>;
}

就这样! 新闻 Ctrl+Shift+A 切换面板.

控制类型

所有13个可用的控制类型:

{
  text: { type: "text", value: string, onChange: (v) => void }
  number: { type: "number", value: number, min?: number, max?: number, onChange: (v) => void }
  boolean: { type: "boolean", value: boolean, onChange: (v) => void }
  select: { type: "select", value: string, options: string[], onChange: (v) => void }
  multiselect: { type: "multiselect", value: string[], options: string[], onChange: (v) => void }
  color: { type: "color", value: string, onChange: (v) => void }
  range: { type: "range", value: number, min: number, max: number, step?: number, onChange: (v) => void }
  date: { type: "date", value: string, min?: string, max?: string, onChange: (v) => void }
  button: { type: "button", onClick: () => void }
  buttonGroup: { type: "buttonGroup", buttons: Array<{label: string, onClick: () => void}> }
  dragAndDrop: { type: "dragAndDrop", onChange: (files: FileList) => void }
  localStorage: { type: "localStorage", onRefresh?: () => void }
  separator: { type: "separator", variant?: "line" | "label" | "space" }
}

共同选项 (大多数控制有):

  • label?: string - 显示标签
  • description?: string - 帮助文本
  • disabled?: boolean - 禁用控件
  • persist?: boolean - 自动保存到本地Storage

📖 全面控制文件 −

配置

自定义热键

useDevPanel("Settings", controls, {
    hotKeyConfig: { key: "d", ctrlKey: true, shiftKey: true },
});

从控制台打开

一旦使用面板,a devPanel 可在 window 这样你就可以开车了 直接取自浏览器控制台——当热键与另一个快捷键相冲突时方便:

devPanel.open(); // show the panel
devPanel.close(); // hide it
devPanel.toggle(); // flip visibility (same as the hotkey)

第一个(启用)时自动注册 useDevPanel 电话挂载,所以它不是 存在于已禁用面板的建筑中.

小组讨论会 主题

useDevPanel("Settings", controls, {
    theme: "neon", // 21 built-in themes available
    panelTitle: "My Dev Panel",
});

事件处理

选择何时触发更新 :

{
  type: "text",
  value: searchTerm,
  event: "onChange", // Update on every keystroke (default)
  onChange: setSearchTerm
}

{
  type: "text",
  value: apiKey,
  event: "onBlur", // Update only when focus is lost
  onChange: setApiKey
}

生产中的缺陷

使用 enabled 在运行时关闭面板。 何时 false电话是 no-op — 区域没有注册, 面板没有挂载 。 默认为 true。 。 。 .

useDevPanel("Settings", controls, {
    enabled: import.meta.env.DEV, // Vite
    // enabled: process.env.NODE_ENV !== "production", // Webpack / Next / CRA
});

⚠️ enabled 不删除您捆绑的面板. 挡住面板 运行,但库代码仍然被导入并运入用户. 要剥去 生产外的代码完全构建(例如,一个为软件包打分的Vite插件),参见 页:1 制作和安全部门改革指南。 。 。 .

安全部门改革/下一个.js

软件包在服务器上是安全导入的( 它从不触碰) document编号 :localStorage 时间 (进口时间)和船舶 "use client" 指令,所以它根据 Next.js App工作 路由器. 面板只挂载客户端.

📖 样式指南 | 事件处理 | 高级用途 | 生产和安全部门改革

文档

指南:

现场实例 :

  • 故事书 - 互动组件演示
  • 本地运行 : npm run storybook

API 参考

useDevPanel(sectionName, controls, options?)

参数:

  • sectionName: string - 这个控制组的独特标识符
  • controls: ControlsGroup - 控制定义的对象映射控制密钥
  • options?: DevPanelProps - 可选配置

选项 :

{
  panelTitle?: string;           // Custom panel header
  theme?: string;                // Built-in theme name
  enabled?: boolean;             // Activate this call (default true; false = no-op)
  hotKeyConfig?: {               // Custom toggle hotkey
    key: string;
    ctrlKey?: boolean;
    shiftKey?: boolean;
    altKey?: boolean;
    metaKey?: boolean;
  }
}

enabled 闸门运行时的行为——它不会从您的捆绑中移除面板. 见 制作和安全部门改革指南 建造时间剥取.

捐款

欢迎捐款! 见 捐款额 准则.

发展:

git clone https://github.com/Berenjenas/react-dev-panel.git
cd react-dev-panel
npm install
npm run storybook

许可证

麻省理工学院 贝伦捷纳


链接 : 国家预防机制 • 妇女 GitHub 图像 • 妇女 问题 • 妇女 贝伦捷纳


由美国制造 贝伦捷纳 团队

版本与发布记录

@berenjena/react-dev-panel 共发布 19 个版本,首次发布于 2025/07/21;过去 12 个月发布了 5 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.5.1latest2026/06/224 个月前
2.5.02026/06/194 个月前
2.4.22026/01/239 个月前
2.4.12026/01/239 个月前
2.4.02026/01/239 个月前
2.3.02025/09/081.2 年前

其他发布通道:beta → 0.0.1-beta.6。

关于 @berenjena/react-dev-panel 的常见问题

@berenjena/react-dev-panel 是什么?

反应开发小组,拥有各种工具和公用事业.

如何安装 @berenjena/react-dev-panel?

在项目目录运行 npm install @berenjena/react-dev-panel,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(>=18.0.0)、react-dom(>=18.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@berenjena/react-dev-panel 支持 TypeScript 吗?

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

@berenjena/react-dev-panel 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@berenjena/react-dev-panel 可以商用吗?

@berenjena/react-dev-panel 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@berenjena/react-dev-panel 的下载量有多少?

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

@berenjena/react-dev-panel 还在维护吗?

最新版本 2.5.1 发布于 2026/06/22(4 个月前);至今共发布 19 个版本,其中过去 12 个月发布了 5 个;首次发布于 2025/07/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。