简介
doy 是一个轻量级的前端调试工具,可以在页面中添加一些调试信息,包括当前变量值、事件信息、调用堆栈等。它支持在开发和生产环境下使用,并且可以自定义显示样式和位置。
安装使用
安装 doy 可以使用 npm 或 yarn,命令如下:
--- ------- --- ----------
或者
---- --- --- -----
安装成功后,在需要使用 doy 的页面中引入 doy:
------ --- ---- ------
将 doy 添加到页面中:
------
在页面的右下角会出现一个 doy 的小标签,点击即可打开 doy 的面板。
API
doy([options])
options: Object,可选,配置项,主要包括下面两个属性:
- debug: Boolean,是否在控制台输出调试信息,默认为 true;
- position: Object,doy 面板的位置,默认为
{ x: 'right', y: 'bottom' }
,可以配置x
和y
分别表示水平和垂直方向的位置,可选值有left
、center
、right
和top
、middle
、bottom
。
doy.add(data[, options])
添加调试信息到 doy 面板中,参数说明:
data: Object,调试信息,可以包括下面三个属性:
- title: String,信息标题;
- value: Any,信息内容;
- render: Function,自定义信息的渲染函数,返回 React 组件或 HTML 编码(如果是 HTML 编码需要设置 options.isHtml = true)。
options: Object,可选,配置项,支持以下属性:
- isHtml: Boolean,是否作为 HTML 渲染,默认为 false,如果为 true,value 属性将被当成 HTML 编码;
- style: Object,样式对象,可以覆盖全局的样式设置;
- className: String,自定义类名。
例子:
--------- ------ ------ ------ ------ --- --------- ------ ----- ------ - ----- -------- ------- --------- -- --- --------- ------ ----- ------ --- -------------- ------- ----- ---------- -------------- ------- --------- -- --------------------- ---
doy.clear()
清空 doy 面板中的所有调试信息。
doy.destroy()
销毁 doy 实例,移除 doy 面板和相应的事件监听。
示例代码
下面是一个简单的示例,演示了如何使用 doy 来调试一个简单的计数器应用。
--------- ----- ------ ------ ----- --------------- -- ---------- ------------ ------- --------------------------------------------------------------------------------- ------- ----------------------------------------------------------------------------------------- ------- ------ ---- ---------------- ------- ------------------------- ------- -------
------ --- ---- ------ --- ----- - -- -------- ----- - ----- ----------- - -- -- - -------- --------- ------ -------- ------ ----- --- -- ------ - ----- ------------ ------- -------------------------------- ------ -- - ------ -------------------- --- ---------------------------------
这段代码中,我们创建了一个简单的计数器应用,每次点击按钮时,计数器加 1,并在 doy 面板中显示当前的计数值。每次点击按钮时,do y 面板就会自动更新,显示最新的计数器值。这是一个非常简单的例子,但它展示了 doy 在实际项目中的应用场景。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005664d81e8991b448e26e2