@chialab/dna

中文文档
4.6.2发布于 2026/09/29MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 1755

渐进网络组件

中文使用文档
文档目录13 节
  1. 特征
  2. 自定义内置元素
  3. 属性、状态和属性
  4. 槽数
  5. 听众和同步活动
  6. 跨框架兼容性
  7. 故事书和文件
  8. 去图书馆
  9. 定义组件
  10. 发展
  11. 构建
  12. 测试
  13. 许可证

DNA

渐进网络组件

NPM

特征

DNA旨在释放 自定义元素 结束 声明 API, (英语), 定制内置元素 (单位:千美元) 无阴影成分。 。 。 .

自定义内置元素

DNA使得可以很容易地创建出能够继承HTML行为,保存可用性和可访问性的定制内置元素.

属性、状态和属性

与 @property 财务报告和审定财务报表 @state 装饰者,DNA会给类域添加活性,与属性同步并触发变化的更新.

槽数

DNA通过自定义的轻度DOM引擎——无阴影DOM——使时间档内容确保形式相容并允许 <slot> 内置元素如 <button>。 。 。 .

听众和同步活动

使用 @listen 用于授权事件处理的装饰器,甚至用于时间档内容. 事件可以同心协力,从班内发出.

跨框架兼容性

由标准Web组件API所建,DNA与任意框架配合. Plasma可以为React,Vue,Svelte和Angular生成包装.

故事书和文件

DNA工具生态系统包括一个Web组件预设的"故事本",它自动生成对您组件的文档和控制.

去图书馆

通过国家预防机制安装:

npm i @chialab/dna
yarn add @chialab/dna
pnpm add @chialab/dna

定义组件

import { Component, customElement, listen, property } from '@chialab/dna';

@customElement('hello-world')
class HelloWorld extends Component {
    // define an observed property
    @property() name: string = '';

    render() {
        return (
            <>
                <input
                    name="firstName"
                    value={this.name}
                />
                <h1>Hello {this.name || 'World'}!</h1>
            </>
        );
    }

    // delegate an event
    @listen('change', 'input[name="firstName"]')
    private onChange(event: Event, target: HTMLInputElement) {
        this.name = target.value;
    }
}

然后使用 HTML 中的元素 :

<hello-world></hello-world>

发展

Build status codecov BrowserStack Status

构建

安装依赖关系并运行 build 脚本 :

pnpm install
pnpm build

这将生成 : dist 文件夹,以及声明文件.

测试

运行 test 脚本 :

pnpm test

多亏了 浏览器Stack。为了在当地运行它们:

export BROWSERSTACK_USERNAME=<your-username>
export BROWSERSTACK_ACCESS_KEY=<your-access-key>
pnpm test:browserstack

许可证

DNA 将在 麻省理工学院 执照.

版本与发布记录

@chialab/dna 共发布 249 个版本,首次发布于 2019/03/29;过去 12 个月发布了 8 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
4.6.2latest2026/09/291 个月前
4.6.12026/09/281 个月前
4.6.02026/08/282 个月前
4.5.22026/05/036 个月前
4.5.12026/04/136 个月前
3.22.82026/03/237 个月前

其他发布通道:rc → 3.4.0-rc.2,alpha → 4.0.0-alpha.16,beta → 4.4.0-beta.16。

关于 @chialab/dna 的常见问题

@chialab/dna 是什么?

渐进网络组件

如何安装 @chialab/dna?

在项目目录运行 npm install @chialab/dna,或使用 pnpm add / yarn add / bun add。

@chialab/dna 支持 TypeScript 吗?

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

@chialab/dna 支持 ESM 还是 CommonJS?

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

@chialab/dna 可以商用吗?

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

@chialab/dna 的下载量有多少?

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

@chialab/dna 还在维护吗?

最新版本 4.6.2 发布于 2026/09/29(1 个月前);至今共发布 249 个版本,其中过去 12 个月发布了 8 个;首次发布于 2019/03/29。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。