React 速查表
React 是一个开源的JavaScript库,用于以声明性和高效的方式创建用户界面。它是一个基于组件的前端库,仅负责 模型-视图-控制器(MVC) 结构中的视图层。React用于创建模块化的用户界面,并促进可重用的UI组件的开发,这些组件可以显示动态数据。
React速查表 为您提供了常用的React方法的简单、快速参考。所有重要的组件和方法都在这一页上提供了。
样板代码: 按照以下步骤创建样板代码
步骤1: 使用以下命令创建应用程序
步骤2: 使用命令导航到文件夹
步骤3: 打开App.js文件,写入以下代码
React元素
React元素与DOM元素不同,因为React元素是简单的JavaScript对象且创建效率很高。React元素是任何React应用程序的构建模块,不应与React组件混淆。
类元素属性
- 将属性传递给一个元素。主要的变化是将class更改为className
样式元素属性
- 添加自定义样式。我们必须以双括号的形式传递值,如{{}}
片段
- 用于创建单个父组件
ReactJS导入和导出
在ReactJS中,我们使用导入和导出来导入已经创建的模块,并分别导出我们自己的组件和模块。
导入/导出的类型 | 描述 | 语法 |
---|---|---|
导入默认导出 | 从模块中导入默认导出 | import MOD_NAME from "PATH" |
导入命名值 | 从模块中导入命名导出 | import {NAME} from "PATH" |
多个导入 | 用于导入多个模块,可以是用户定义的或npm包 | import MOD_NAME, {NAME} from "PATH" |
默认导出 | 创建一个默认导出。每个组件可以有一个默认导出 | export default MOD_NAME |
命名导出 | 当单个模块中有多个组件时,创建命名导出 | export default {NAME} |
多个导出 | 导出多个命名组件 | export default {NAME1, NAME2} |
React组件
组件是React的核心构建块之一。在React中,组件基本上会返回一段JSX代码,告诉屏幕上应该渲染什么。
组件 | 描述 | 语法 |
---|---|---|
功能型 | 简单的JS函数,无状态 | function demoComponent() { return (<> // CODE </>); } |
基于类的 | 使用JS类创建有状态的组件 | class Democomponent extends React.Component { render() { return <>//CODE</>; } } |
嵌套型 | 在另一个组件中创建组件 | function demoComponent() { return (<> <Another_Component/> </>); } |
在组件内外管理数据(状态与属性)
属性 | 描述 | 语法 |
---|---|---|
props | 在组件之间传递数据,只读。主要在函数式组件中使用 | // Passing<br/><Comp prop_name=”VAL”/><br/><br/>//Accessing<br/><Comp>{this.props.prop_name}</Comp> |
state | 在组件内部管理数据,可变。与类组件一起使用 | constructor(props) { super(props); this.state = { var: value, }; } |
setState | 使用回调函数更新状态的值。它是一个异步函数调用 | this.setState((prevState)=>({ // CODE LOGIC })) |
组件的生命周期
ReactJS中的生命周期方法用于控制组件在不同阶段的初始化和卸载。
挂载阶段方法
方法 | 描述 | 语法 |
---|---|---|
constructor | 在组件呈现之前运行 | constructor(props){} |
render | 用于呈现组件 | render() |
componentDidMount | 在组件呈现后运行 | componentDidMount() |
componentWillUnmount | 在组件从DOM中移除之前运行 | comoponentWillUnmount() |
componentDidCatch | 用于捕捉组件中的错误 | componentDidCatch() |
更新阶段的方法
方法 | 描述 | 语法 |
---|---|---|
componentDidUpdate | 组件更新后调用 | componentDidUpdate(prevProp, prevState, snap) |
shouldComponentUpdate | 避免在重新渲染时调用 | shouldComponentUpdate(newProp. newState) |
render | 更新后渲染组件 | render() |
条件渲染
在React中,条件渲染用于根据某些条件渲染组件。只有当条件满足时,组件才会被渲染。这有助于封装,因为用户只能看到所需的组件,而不会看到其他内容。
类型 | 描述 | 语法 |
---|---|---|
if-else | 使用if-else块渲染组件 | if (condition) { return <COMP1 />; }else{ return <COMP2/>; } |
逻辑与运算符 | 根据条件显示/隐藏单个组件 | {condition && <Component/>} |
三元运算符 | 使用if-else块渲染组件 | {Condition? <COMP1/> : <COMP2/> } |
React列表
我们可以在React中以类似常规JavaScript的方式创建列表,即通过将列表存储在一个数组中。为了遍历列表,我们将使用map()函数。
在React中使用键来标识列表中更改、更新或删除的项目。键用于为列表中的元素提供身份。建议使用字符串作为唯一标识列表中项目的键。
代码片段:
React DOM 事件
类似于HTML事件,React DOM事件用于根据用户输入执行事件,例如点击(click)、改变(onChange)、鼠标悬停(mouseOver)等
方法 | 描述 | 语法 |
---|---|---|
点击 | 触发点击事件 | <button **onClick** ={func}>内容</button> |
更改 | 当组件中检测到变化时触发 | <input **onChange** ={handleChange} /> |
提交 | 当表单被提交时触发事件 | <form onSubmit={(e) => {//逻辑}}></form> |
React Hooks
Hooks(钩子)用于在函数组件中使用状态,并管理React中的副作用。它们在React 16.8中引入。开发人员可以使用它们来使用状态和其他React特性而无需编写类。例如,组件的状态。需要注意的是,hooks不用于类中。
钩子 | 描述 | 语法 |
---|---|---|
useState | 在函数内声明状态变量 | const [var, setVar] = useState(Val); |
useEffect | 处理React中的副作用 | useEffect(<FUNCTION>, <DEPENDECY>) |
useRef | 直接创建对DOM元素的引用 | const refContainer = useRef(initialValue); |
useMemo | 返回记忆化的值 | const memVal = useMemo(function, arrayDependencies) |
PropTypes
PropTypes在React中用于检查传入组件的prop的值。这些在错误处理中非常有用,并且在大规模应用程序中非常有用。
原始数据类型
类型 | 类/语法 | 示例 |
---|---|---|
字符串 | PropTypes.string | “Geeks” |
对象 | PropType.object | {course: “DSA”} |
数字 | PropType.number | 15, |
布尔值 | PropType.bool | true |
函数 | PropType.func | const GFG ={return “Hello”} |
符号 | PropType.symbol | Symbol(“symbole_here” |
数组类型
类型 | 类/语法 | 示例 |
---|---|---|
数组 | PropTypes.array | [] |
字符串数组 | PropTypes.arrayOf([类型]) | [15,16,17] |
数字数组 | PropTypes.oneOf([数组]) | [“Geeks”, “For”, “Geeks” |
对象数组 | PropTypes.oneOfType([类型]) | PropTypes.instanceOf() |
对象类型
类型 | 类/语法 | 示例 |
---|---|---|
对象 | PropTypes.object() | {course: "DSA"} |
数字对象 | PropTypes.objectOf() | {id: 25} |
对象形状 | PropTypes.shape() | {course: PropTypes.string, price: PropTypes.number} |
实例 | PropTypes.objectOf() | new obj() |