mewcoder / engine-ui

headless components
MIT License
1 stars 0 forks source link

文章 #2

Open mewcoder opened 1 year ago

mewcoder commented 1 year ago

全新的 React 组件设计理念 Headless UI https://juejin.cn/post/7160223720236122125

mewcoder commented 1 year ago

实现一个靠谱好用的全屏组件,顺手入门 Headless 组件 https://juejin.cn/post/7171274503152992287

mewcoder commented 1 year ago

https://medium.com/@nirbenyair/headless-components-in-react-and-why-i-stopped-using-ui-libraries-a8208197c268

这篇文章的标题是《React 中的无头组件以及我为何停止使用 UI 库》。主要内容如下: 在React应用程序开发中,组件是构建用户界面的基石。由于React的灵活性,我们可以以多种方式构建组件。 作者过去常使用第三方UI组件库,像Material UI,Ant Design等。这些库提供漂亮的组件,不需要自己构建UI。 但是,使用这些库也有一定缺点:

  1. 组件样式难以自定义。需要对组件进行深层覆盖才能得到想要的样式,这使代码变得混乱。
  2. 嵌套组件会产生大量无用Markup。这会影响性能和可访问性。
  3. 版本更新会破坏已有应用。当库发布新版本时,会带来意外的破坏性更改,需要频繁修复和测试。
  4. 组件变得复杂庞大。为了兼容各种用例,这些库的组件往往功能太丰富,而实际上我们只需要一小部分功能。
  5. 学习和理解成本高。要熟练使用这些库需要投入大量时间去学习各个组件的API和选项。

为了避免以上问题,作者提出使用“无头组件”的方法来构建UI。所谓无头组件,就是不带任何样式的纯组件。然后开发者可以自由为这些无头组件添加样式。

采用这种方法可以获得以下好处:

  1. 完全自定义组件样式。不受任何UI库限制,可以实现想要的任何视觉效果。
  2. 清晰简单的MarkUp。无需嵌套额外的元素,MarkUp更加简洁。
  3. 免受破坏性更新影响。由于不依赖任何第三方库,所以无需担心版本更新带来的影响。
  4. 只构建真正需要的组件。可以完全定制自己的组件,没有多余的功能。
  5. 降低学习成本。无需学习第三方库的API,只要掌握React和CSS即可。 总之,作者通过自己构建无头组件的方式,避免了使用第三方UI库带来的各种问题,使得开发体验更加舒畅。无头组件加上CSS-in-JS的做法,可以在React应用中轻松构建界面和实现定制的视觉效果。