如何在 React 中运用 CSS

Posted

tags:

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

网页的布局、颜色、形状等UI展示方式主要是由Css进行设置,在ReactJs中也是一样。ReactJs中的Css结构方式与传统的Web网页类似,但依然存在一些差异。ReactJs中Css文件本身的编写上并没有差异,我们可以定义特定的样式类名,也可以正对html元素定义样式。差异主要在React对Css的使用上(微信react-javascript):

l 引用的差异:

传统html文件中css文件引用方式:

<link rel="stylesheet" type="text/css" href="mystyle.css">

ReactJs中css文件引用方式:

你可以直接采用require: require('./Category.css');

你也可以采用import: import styles from './Category.css';

l 使用差异:

传统css的使用方式是设置class: <div class=”center”> test </div>

ReactJs中css的使用方式是设置className(因为class已经成为了关键字)。

<div className='entry'>test </div>

另外

如果你采用require的方式,你可以直接在页面元素中使用css文件中的样式名。

如果你采用import styles from './Category.css';的方式,则应采用以下方式。

<div className=style.entry>test </div>

l 最终解析文件的差异:

传统css文件一般依然保持着源码状态。

在ReactJS中,Css文件最终将会对css样式名进行转换,例如在index.js文件中,引用style.css:

.customButton

Width:100px;

Heigth:30px;



将转化为:

.index_customButton_23U0x

Width:100px;

Heigth:30px;

.

其中23U0x是随机数,这样转化的结果将避免最终的单页面中,css样式名不存在同名冲突。

基本上ReactJS的css文件的使用差异到此为止了,你可以按照传统Css样式的定义和使用方式,随意使用了,你可以采用单一样式、设置元素标签样式、组合样式、层级样式等任意方式。
参考技术A 建议 CSS in JS 写法,虽然感觉推翻了多年的 CSS 工作进展。

主要原因还是 CSS 的全局污染。

模块化、组件化一直是前端不断优化追求的目标。传统的 CSS 无法很好的进行模块化。只能人为通过命名空间来约束这段样式在某个模块中,这种约束很弱的,指不定哪天来个新人不知道这个,就随便命名产生冲突影响了其他的组件。

而 CSS in JS 的写法,可以解决这个问题。如果有些场景实在是需要 CSS 外联才能实现(比如 animation 的一些动画),可以使用 Glen Maddern: Internet Pro CSS modules 来解决这个问题。

以上是关于如何在 React 中运用 CSS的主要内容,如果未能解决你的问题,请参考以下文章

如何在 react-native iOS 应用程序中运行时读取 Info.Plist?

当应用程序未在 React-Native firebase 中运行时如何设置通知声音

如何在 React.js 中使用 JavaScript 修改 CSS

如何在MathML中运用MathType

如何在React 写样式,如何处理React的css冲突的问题

如何在React 写样式,如何处理React的css冲突的问题