React基础与实践 | 青训营笔记

71 阅读4分钟

React基础与实践 React 是一个由 Facebook 开发和维护的 JavaScript 库,用于构建用户界面。React 基于组件化的思想,将用户界面拆分成多个独立的组件,并通过组件间的嵌套和组合来构建复杂的用户界面。

React 组件具有状态和生命周期,当组件的状态发生改变时,React 可以自动更新界面,而无需手动修改 DOM。这种特性使得 React 应用程序具有更快的渲染速度和更好的性能。React 还提供了一组虚拟 DOM 原生操作,使得开发人员能够方便地操作和管理 DOM。

React 具有以下特点:

简洁:React 引入了 JSX 语法,使得开发人员可以在 JavaScript 代码中直接嵌入 HTML 标签和组件。 组件化:React 引入了组件化的思想,使得用户界面可以按照功能块划分成多个独立的组件,便于管理和重用。 高效:React 采用了虚拟 DOM 技术,使得修改 DOM 变得更加高效和快速。 跨平台:React 借助 React Native 技术,可以让开发人员使用相同的代码编写跨平台的应用程序,例如 iOS、Android、Web 等。 总之,React 是一个高效、简洁、组件化的 JavaScript 库,可以帮助开发人员构建复杂的用户界面,提高应用程序的性能和开发效率。

React 组件是构成 React 应用程序的核心部分,用于显示和处理应用程序的用户界面。React 组件基于组件化的思想,将应用程序的用户界面拆分成多个独立的、功能单一的组件。下面是一个简单的 React 组件的示例:

import React from 'react';

class MyComponent extends React.Component { constructor(props) { super(props); this.state = { count: 0 }; }

handleClick() { this.setState({ count: this.state.count + 1 }); }

render() { return (

My Component

Count: {this.state.count}

<button onClick={() => this.handleClick()}> Click me!
); } } 这个组件名为 MyComponent,继承自 React.Component 基类。它渲染一个包含标题、计数器和按钮的简单的用户界面。组件的状态由 count 属性表示,并通过 handleClick 方法来更新。当按钮被点击时,handleClick 方法使用 setState 方法来更新 count。

在 React 中,组件都是通过继承 React 提供的基类 React.Component 来创建的。在组件类的构造函数中,可以初始化组件的状态,还可以绑定组件的方法。组件的 render 方法用于返回组件的用户界面,该界面通常是由一些 JSX 语法编写的 HTML 元素和其他组件组成的。

要将组件添加到 React 应用程序中,可以将其作为 JSX 语法的标签来创建并添加到其他组件中。例如,可以在 ReactDOM.render() 函数中添加 MyComponent:

import React from 'react'; import ReactDOM from 'react-dom';

class MyComponent extends React.Component { // 省略组件代码 }

ReactDOM.render(, document.getElementById('root')); 这将在 ID 为 root 的 DOM 元素中呈现 MyComponent。

总之,React 组件是实现 React 应用程序的核心元素,可以通过继承 React.Component 创建自定义组件,并通过 render 方法返回组件的用户界面。在应用程序中使用自定义组件可以将应用程序拆分成不同的功能组件,并支持代码重用和可维护性。

Hook 是 React 16.8 中增加的一个新功能,它允许在不编写类组件的情况下,通过函数式组件中添加状态和副作用。React Hook 提供了一种优雅的方式,以类似函数的方式管理状态和生命周期等概念。

React Hook 包含以下两个核心函数:

useState() useState() 是最常用的 Hook 之一,它允许你在一个函数式组件中添加状态。useState() 还返回了一个更新状态的函数。这个函数可以通过事件处理程序、定时器等方式来调用,以更新组件的状态。

import React, { useState } from 'react';

function MyComponent() { const [count, setCount] = useState(0);

const handleClick = () => { setCount(count + 1); }

return (

Count: {count}

Click
); } 上面的代码创建了一个简单的计数器组件。通过 useState() 函数,我们可以维护一个名为 count 的状态变量,并通过 setCount() 函数来更新这个变量。在组件的 render 方法中,我们可以使用这个状态变量 count 来渲染计数器的值。

useEffect() useEffect() 是另一个常用的 Hook,它允许你执行副作用操作,如请求数据、操作 DOM 或添加订阅等。这个函数在组件被挂载、更新或卸载时都会执行。

import React, { useState, useEffect } from 'react';

function MyComponent() { const [count, setCount] = useState(0);

useEffect(() => { document.title = Count: ${count}; });

const handleClick = () => { setCount(count + 1); }

return (

Count: {count}

Click
); } 上面的代码演示了如何在组件中使用 useEffect()。在这个例子中,我们使用 useEffect() 来设置页面标题,以与计数器的值相匹配。随着 count 发生变化,useEffect() 会自动更新文档标题。

总之,React Hook 为函数组件提供了一种新的方式来管理状态和生命周期,使得函数组件的编写更加简洁和可读。使用 Hook 能够让开发人员更加专注于编写组件的业务逻辑,使得 React 应用程序开发更加轻松和高效。