Nic*_*lli 11 html javascript css frontend reactjs
我根本不是反应方面的专家,但从我可以看到,如果我导入一些CSS表,这些将适用于我的所有应用程序。如果我想将 React 用于多页面应用程序,如何为每个页面定义 css 表?
import React, { Component } from "react";
import "./style.css";
export default class Page1 extends Component {
render() {
return (
<div>
<button>with css</button>
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
import React, { Component } from "react";
export default class Page2 extends Component {
render() {
return (
<div>
<button>no css</button>
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
button {
background: green;
}
Run Code Online (Sandbox Code Playgroud)
此样式只能应用于第一页,但也适用于第二页。我该如何解决这个问题?
避免 Reactjs 上页面之间 css 冲突的最简单方法是使用css-modules(它不是依赖项),只需将页面样式表名称从 ' my-stylesheet.css ' 更改为 ' my-stylesheet.module.css ' 并导入它为“ my-stylesheet.module.css ”。
有两种不同的方法可以使用:
这篇短文对两者进行了比较。我更喜欢 CSS 模块。
如何使用CSS模块?
设置
styles.css
为一个模块,您需要将其更改为styles.module.css
import styles from './styles.module.css'
(您可以使用任何其他名称代替styles
)命名
<div className={styles.box_one}>
some content
</div>
Run Code Online (Sandbox Code Playgroud)
重要提示:确保 CSS 文件中的类已命名.box_one
,而不是.box-one
我个人的喜好
我会像这样import s from './styles.module.css'
使用s
而不是导入styles
为了使代码更干净而导入。
我的 JSX 如下所示
<div className={s.box_one}>
some content
</div>
Run Code Online (Sandbox Code Playgroud)