CSS modules 与 React中实践

Posted Visual Monitor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSS modules 与 React中实践相关的知识,希望对你有一定的参考价值。

最近一直在学习React,看上去蛮简单的内容,其实学习曲线还是比较高的。

目前学到css绑定的问题,看到有一篇好的文章,就转过来了。

CSS 模块化的解决方案有很多,但主要有两类。一类是彻底抛弃 CSS,使用 JS 或 JSON 来写样式。Radium, jsxstyle ,react-style 属于这一类。优点是能给 CSS 提供 JS 同样强大的模块化能力;缺点是不能利用成熟的 CSS 预处理器(或后处理器) Sass/Less/PostCSS, :hover 和 :active 伪类处理起来复杂。另一类是依旧使用 CSS,但使用 JS 来管理样式依赖,代表是CSS Modules。CSS Modules 能最大化地结合现有 CSS 生态和 JS 模块化能力,API 简洁到几乎零学习成本。发布时依旧编译出单独的 JS 和 CSS。它并不依赖于 React,只要你使用 Webpack,可以在 Vue/Angular/jQuery 中使用。

是不是应该添加个??,学习零成本。

CSS Modules 模块化方案

CSS Modules 内部通过ICSS 来解决样式导入和导出这两个问题。分别对应 :import 和 :export 两个新增的伪类

:import("path/to/dep.css") {
  localAlias: keyFromDep;
  /* ... */
}
:export {
  exportedKey: exportedValue;
  /* ... */
}

但直接使用这两个关键字编程太麻烦,实际项目中很少会直接使用它们,我们需要的是用 JS 来管理 CSS 的能力。结合 Webpack 的 css-loader 后,就可以在 CSS 中定义样式,在 JS 中导入

 

以上是关于CSS modules 与 React中实践的主要内容,如果未能解决你的问题,请参考以下文章

[转] Immutable 详解及 React 中实践

CSS module和React 中的应用

如何使用 React 设置 babel-plugin-react-css-modules?

CSS 与 React Native

react-css-modules 无法正常工作

create-react-app中css module无效的解决办法