我欣赏 Viget 博客上 一篇帖子 中的这种细微差别
可以写一整篇文章来介绍 Tailwind 的多种风格,但总的来说,这些风格是
1. 原生 Tailwind,即未对配置进行任何更改,
Leo Bauza,“Viget 的 CSS 是如何工作的?”
2. 大量依赖 CSS 文件中@apply
但仍然遵循 BEM 或其他组件组织的 Tailwind,
3. Tailwind UI,以及
4. 大量自定义 Tailwind 的配置并编写自定义插件。
使用某些特定技术的方式可能与其他人的方式大不相同,以至于它们几乎没有相似之处,即使它们具有相同的核心。
Bootstrap 也是如此。您可以 从 CDN 链接 Bootstrap,这是它提供的所有内容的完整未修改版本。您可以下载 Sass/JavaScript 源文件,将其包含在您自己的项目中,并自带构建过程。这使您可以自定义它们,但这会使升级路径变得复杂。或者,您可以从包管理器中使用 Bootstrap,这意味着您正在从您自己的构建过程中引用源文件,但从不直接接触它们。无论哪种方式,如果您使用的是源代码,您就可以执行诸如自定义它(更改颜色、字体等)以及修剪您想要使用的部分等操作。
React 类似。Vue 类似。您可以直接从 CDN 链接它们并在浏览器中使用它们,而无需构建过程。或者它们可以成为构建过程的核心,并从 npm 中提取。或者它们可以成为 Next 或 Nuxt 等框架的基础。
当您将任何给定的单个技术可以用如此多种不同的方式与任何给定项目中使用的许多不同技术相结合时,就不难理解为什么开发人员在项目上的体验如此不同,并且您会听到很多人在辩论中互相交谈。
如果您使用的是选项 2 — @apply 和 BEM — 那么值得看看我刚刚发布的一个小型 Sass 框架;为这个目的而构建。它更适合设计系统和大型项目:(glidecss.com)[https://glidecss.com]。
感谢 Chris 指出这些辩论存在的问题。
那些“Bootstrap 对您有害的 12 个理由”或“为什么您不应该使用 React” 真的让我很沮丧,就好像您无法配置这些工具来满足您的需求一样。
我们的产品正在过渡到使用
twin.macro
和 Emotion,这为我们提供了一个很好的 Tailwind(及其可配置性)和 CSS-in-JS 组合,与任何视图库无关。我们使用 React,所以它非常适合!非常期待看看它如何能提高我们快速制作 UI 原型的能力!
我在工作中几乎一直使用 Bootstrap 5,但当我是自由职业者时,Tailwind 确实成为了明星。PostCSS purge 功能以及 md:feature 和 hover:state 类的工作方式非常优雅。我唯一抱怨的是,你需要生成非常长的实用程序类字符串来做一些可以像 Bootstrap 一样的“按钮”之类的事情,但我明白他们为什么要采用这种不带意见的方式。