插件加载器
插件是 DataTables 生态系统中非常重要的部分。它们扩展了 DataTables 的功能,将常见操作封装到简单函数中,并为在社区中共享代码提供了一种方式。我们存储了我们自己开发的插件,以及从社区提交的插件,这些插件存储在我们的插件仓库中,并在该网站中对其进行了记录。但是,到目前为止,插件的编写方式尚未有太多一致性。随着今天 DataTables 1.13.3 和插件仓库一起发布,这种情况发生了变化。
现在所有插件
- 都由 Prettier More 格式化(基本上Prettier 加上一些额外的选项)。
- 提供多种加载器选项
- ESM
- CommonJS
- AMD
- 浏览器
- 提供自己的 Typescript 定义。
请注意,这些规则有两个例外
- 分页插件尚未更新。DataTables 中的分页 API 需要修改,这将在未来的版本中解决。
- 旧版插件尚未更新,因为它们不再需要(例如货币排序)。
使用插件
已更新每种插件类型的文档,使你不会怀疑如何实际使用插件。如果你以average()
API 插件为例,你就能看到它包含有关从以下位置加载的说明
- 从我们的 CDN 在浏览器中加载(或者你可以下载并本地托管它)
- 通过
datatables.net-plugins
NPM 包安装,然后- 作为 ES 模块加载或
- 作为 Common JS 模块加载。
继续向 ESM 和 Typescript 移动
如果你一直在关注 DataTables 的开发,你就会知道所有新的 DataTables 软件已使用 TypeScript 开发(例如 Editor 2、SearchPanes、SearchBuilder 等),虽然我不建议将整个代码库专门转移到 TypeScript,但我致力于为我们任何现成的 JavaScript 库提供类型定义,以完全支持 TypeScript。如果你导入插件,你现在会通过插件类型定义看到自动提示。例如,这是 AlphabetSearch 功能插件的定义。
DataTables 也在随着 JavaScript 生态系统的其他部分向 ES 模块迈进。DataTables 核心、Editor 和扩展都支持 ESM 加载器,并继续支持现有的 CommonJS、AMD 和浏览器加载器。此次插件更新完成了我们支持的软件通过任何这些加载器使用的能力。当使用诸如 Vite 之类的现代打包程序时,ESM 加载器将自动选择并进行优化。
贡献
有了插件的想法?赶紧进入插件存储库,并在那里提交一个包含插件的拉取请求(翻译除外,翻译应提交到此网站)。插件类别的目录组织不言而喻,每个都包含一个托管 TypeScript 文件的src
目录。这些目录随后被编译为 JavaScript 并自动包装在合适的加载程序中。
如果您对贡献有任何疑问,请随时在论坛中展开讨论。