- ReactJS 教程
- ReactJS 教程
- ReactJS - 简介
- ReactJS - 安装
- ReactJS - 特性
- ReactJS - 优点和缺点
- ReactJS - 架构
- ReactJS - 创建 React 应用程序
- ReactJS - JSX
- ReactJS - 组件
- ReactJS - 嵌套组件
- ReactJS - 使用组件
- ReactJS - 组件集合
- ReactJS - 样式
- ReactJS - 属性(props)
- ReactJS - 使用属性创建组件
- ReactJS - props 验证
- ReactJS - 构造函数
- ReactJS - 组件生命周期
- ReactJS - 事件管理
- ReactJS - 创建事件感知组件
- ReactJS - 在Expense Manager APP中引入事件
- ReactJS - 状态管理
- ReactJS - 状态管理 API
- ReactJS - 无状态组件
- ReactJS - 使用 React Hooks 进行状态管理
- ReactJS - 使用 React 钩子的组件生命周期
- ReactJS - 组件的布局
- ReactJS - 分页
- ReactJS - Material 用户界面
- ReactJS - Http 客户端编程
- ReactJS - 表单编程
- ReactJS - 受控组件
- ReactJS - 不受控制的组件
- ReactJS - Formik
- ReactJS - 条件渲染
- ReactJS - 列表
- ReactJS - 键
- ReactJS - 路由
- ReactJS - 冗余
- ReactJS - 动画
- ReactJS - 引导程序
- ReactJS - 地图
- ReactJS - 表格
- ReactJS - 使用 Flux 管理状态
- ReactJS - 测试
- ReactJS - CLI 命令
- ReactJS - 构建和部署
- ReactJS - 示例
- ReactJS - 钩子简介
- ReactJS - 使用 useState
- ReactJS - 使用 useEffect
- ReactJS - 使用 useContext
- ReactJS - 使用 useRef
- ReactJS - 使用 useReducer
- ReactJS - 使用 useCallback
- ReactJS - 使用 useMemo
- ReactJS - 自定义钩子
- ReactJS - 可访问性
- ReactJS - 代码拆分
- ReactJS - 上下文
- ReactJS - 错误边界
- ReactJS - 转发引用
- ReactJS - 片段
- ReactJS - 高阶组件
- ReactJS - 与其他库集成
- ReactJS - 优化性能
- ReactJS - 分析器 API
- ReactJS - 门户
- ReactJS - 没有 ES6 ECMAScript 的 React
- ReactJS - 没有 JSX 的 React
- ReactJS - 协调
- ReactJS - 引用和 DOM
- ReactJS - 渲染属性
- ReactJS - 静态类型检查
- ReactJS - 严格模式
- ReactJS - Web 组件
- ReactJS - 日期选择器
- ReactJS - Helmet
- ReactJS - 内联样式
- ReactJS - 属性类型
- ReactJS - 浏览器路由器
- ReactJS - DOM
- ReactJS - 旋转木马
- ReactJS - 图标
- ReactJS - 表单组件
- ReactJS - 参考 API
ReactJS - 样式
一般来说,React 允许通过 className 属性使用 CSS 类来设置组件的样式。由于 React JSX 支持 JavaScript 表达式,因此可以使用很多常见的 CSS 方法。一些顶级选项如下 -
- CSS 样式表 - 普通 CSS 样式以及 className
- 内联样式 - CSS 样式作为 JavaScript 对象以及 camelCase 属性。
- CSS模块 - 本地范围的CSS样式。
- 样式化组件 - 组件级别样式。
- Sass 样式表 - 通过在构建时将样式转换为普通 css 来支持基于 Sass 的 CSS 样式。
- 后处理样式表 - 通过在构建时将样式转换为普通的css来支持后处理样式。
在本章中,让我们学习如何应用这三种重要的方法来设计我们的组件。
- CSS 样式表
- 内联样式
- CSS 模块
CSS 样式表
CSS 样式表是通常的、常见的和经过时间考验的方法。只需为组件创建一个 CSS 样式表,并输入该特定组件的所有样式。然后,在组件中,使用 className 来引用样式。
让我们设置 ExpenseEntryItem 组件的样式。
在您最喜欢的编辑器中打开费用管理器应用程序。
接下来,打开ExpenseEntryItem.css文件并添加一些样式。
div.itemStyle {
color: brown;
font-size: 14px;
}
接下来,打开 ExpenseEntryItem.js 并将 className 添加到主容器中。
import React from 'react';
import './ExpenseEntryItem.css';
class ExpenseEntryItem extends React.Component {
render() {
return (
<div className="itemStyle">
<div><b>Item:</b> <em>Mango Juice</em></div>
<div><b>Amount:</b> <em>30.00</em></div>
<div><b>Spend Date:</b> <em>2020-10-10</em></div>
<div><b>Category:</b> <em>Food</em></div>
</div>
);
}
}
export default ExpenseEntryItem;
接下来,使用 npm 命令为应用程序提供服务。
接下来,打开浏览器并在地址栏中输入 http://localhost:3000,然后按回车键。
CSS样式表易于理解和使用。但是,当项目大小增加时,CSS 样式也会增加,并最终在类名中产生很多冲突。此外,直接加载 CSS 文件仅在 Webpack 打包器中受支持,其他工具可能不支持。
内联样式
内联样式是设置 React 组件样式的最安全方法之一。它使用基于 DOM 的 css 属性将所有样式声明为 JavaScript 对象,并通过样式属性将其设置为组件。
让我们在组件中添加内联样式。
在您喜欢的编辑器中打开 expense-manager 应用程序ExpenseEntryItem.js并修改 src 文件夹中的文件。声明一个 object 类型的变量并设置样式。
itemStyle = {
color: 'brown',
fontSize: '14px'
}
这里,fontSize 表示 css 属性 font-size。所有 css 属性都可以通过以 camelCase 格式表示来使用。
接下来,使用大括号 {} 在组件中设置 itemStyle 样式 -
render() {
return (
<div style={ this.itemStyle }>
<div><b>Item:</b> <em>Mango Juice</em></div>
<div><b>Amount:</b> <em>30.00</em></div>
<div><b>Spend Date:</b> <em>2020-10-10</em></div>
<div><b>Category:</b> <em>Food</em></div>
</div>
);
}
此外,样式可以直接在组件内部设置 -
render() {
return (
<div style={
{
color: 'brown',
fontSize: '14px'
}
}>
<div><b>Item:</b> <em>Mango Juice</em></div>
<div><b>Amount:</b> <em>30.00</em></div>
<div><b>Spend Date:</b> <em>2020-10-10</em></div>
<div><b>Category:</b> <em>Food</em></div>
</div>
);
}
现在,我们已经在应用程序中成功地使用了内联样式。
接下来,使用 npm 命令为应用程序提供服务。
接下来,打开浏览器并在地址栏中输入 http://localhost:3000,然后按回车键。
CSS 模块
Css Modules 提供了最安全、最简单的方法来定义样式。它使用具有正常语法的普通 css 样式表。在导入样式时,CSS 模块会将所有样式转换为本地范围的样式,以便不会发生名称冲突。让我们将组件更改为使用 CSS 模块
在您最喜欢的编辑器中打开费用管理器应用程序。
接下来,创建一个新的样式表,ExpenseEntryItem.module.css src/components 文件夹下的文件,并编写常规的 css 样式。
div.itemStyle {
color: 'brown';
font-size: 14px;
}
在这里,文件命名约定非常重要。React 工具链会通过 CSS 模块对以 .module.css 结尾的 css 文件进行预处理。否则,它将被视为普通样式表。
接下来,打开 src/component 文件夹中ExpenseEntryItem.js文件并导入样式。
import styles from './ExpenseEntryItem.module.css'
接下来,在组件中使用样式作为 JavaScript 表达式。
<div className={styles.itemStyle}>
现在,我们已经在我们的应用程序中成功地使用了 CSS 模块。
最终和完整的代码是:
import React from 'react';
import './ExpenseEntryItem.css';
import styles from './ExpenseEntryItem.module.css'
class ExpenseEntryItem extends React.Component {
render() {
return (
<div className={styles.itemStyle} >
<div><b>Item:</b> <em>Mango Juice</em></div>
<div><b>Amount:</b> <em>30.00</em></div>
<div><b>Spend Date:</b> <em>2020-10-10</em></div>
<div><b>Category:</b> <em>Food</em></div>
</div>
);
}
}
export default ExpenseEntryItem;
接下来,使用 npm 命令为应用程序提供服务。
接下来,打开浏览器并在地址栏中输入 http://localhost:3000,然后按回车键。