第三方组件的最佳实践

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 200 美元的免费额度!

我非常喜欢 Web 的组件化。 我认为这是在几乎任何规模(除了可能最基本的情况)构建网站的一种非常好的方式。 关于什么构成了一个好组件,人们有很多不同的意见,但让我们暂时将范围缩小到第三方。 也就是说,您只需使用而不是作为网站独特设置的一部分而自己构建的组件。

什么让第三方组件变得出色? 我最喜欢的第三方组件属性是它将困难的事情变得容易。 尤其是识别并正确处理细微差别的事情,或者您甚至可能不了解如何正确处理的事情。

也许您使用了一些组件来为您提供弹出式上下文菜单。 它可能会执行浏览器边缘检测,例如确保菜单永远不会出现裁剪或超出屏幕。 这是一个棘手的编程小细节,如果您自己做的话可能无法做到,或者甚至忘记做。

我想到 React Router 的 <Link /> 组件,或者在 Gatsby 网站上使用的东西。 它会自动为您在链接中注入 aria-current="page",当您在该页面上时。 您现在就可以(并且可能应该)使用它作为样式挂钩! 而且如果您正在处理自己的链接,您可能会忘记编写它。

同样的道理,Reach UI 选项卡 具有严格的辅助功能,如果您手动编写它们,您可能无法做到。 这个 React 图片组件 完成了各种各样与图片相关的相对难以实现的事情,例如复杂的响应式图片语法、延迟加载、占位符等等。 从某种意义上说,这相当于为您提供“免费的”最佳实践。

这里有一个 表格库,它甚至不接触您的 UI,而是专注于您在表格中可能需要的其他需求,这是一种非常有趣的方法。

无论如何! 当我询问这个问题时,大家怎么说。 是什么让第三方组件变得很棒? 它们最棒的功能是什么?(除了显而易见的事情,比如好的文档和好的辅助功能)? 其中一些可能相互矛盾。 我只是列出人们说他们喜欢什么。

  • 即插即用。 它应该“正常工作”,配置最少。
  • 大量可编辑的演示
  • 高度可配置
  • “白标”样式。 不要带来太强烈的设计选择。
  • 通过普通 CSS 设置样式,以便您可以 BYO 自己的样式工具
  • 快速
  • 体积小
  • 可以通过包管理器安装
  • 可以手动实例化
  • 可以指定一个 DOM 节点,组件可以在其中运行
  • 遵循有用的版本控制方案
  • 得到维护,特别是安全维护
  • 有公开路线图
  • 与框架无关
  • 没有其他依赖关系
  • 使用直观的命名约定
  • 支持国际化
  • 有大量测试

您还会在列表中添加什么内容?