Intro我最近看了来自反应: JS中的CSS的幻灯片,我真的很喜欢用JS应用CSS的想法(使用JSX,这意味着将所有的HTML、JS和CSS放在一个文件中,这对小型可重用组件非常好);但是我担心语义/性能/其他方面可能存在的问题,这会导致我.
问题为什么区分CSS和HTML很重要?
我能想到的明显原因是避免重复和保持HTML的纯语义,同时让CSS处理样式。我可以在JS做这两件事。我失踪还有其他原因吗?
编辑:我错过了一件非常重要的事情--我正在为一个大型web应用程序设计架构,而不是一些小博客。它将有自己的构建管道,几乎任何可能的配置。
编辑2:我看到了很多关于关注点分离的争论,其中大多数(据我理解)都是基于这样的假设:只修改HTML或只修改CSS,而不是并行地编辑HTML和CSS。虽然这可能是小型网站的情况,但我的提交历史正好相反--我通常同时编辑HTML和CSS。因此,与其将所有HTML从所有CSS中分离出来,不如将每个组件彼此分离。
我还是不认为这样做有什么严重的缺点。
缓存?每个组件文件都可以被缓存。语义学?我仍然可以在HTML中有语义,在CSS中有样式,只是在一个文件中。可重用和可维护性?使用分离的组件将更容易,而不是一堆关系不明确的HTML和CSS文件。MVC?我可以让我的迷你MVC在每个组件中。编辑#3: FYI:@keithjgrant写了一篇很棒的关于这个问题的文章:http://keithjgrant.com/posts/against-css-in-js.html