简单的说一说前端开发语言React

发布于:2025-09-09 ⋅ 阅读:(18) ⋅ 点赞:(0)

React 是一个用于构建用户界面(尤其是 Web 界面)的 ​JavaScript 库。它由 Facebook 开发并开源,现在是全球最受欢迎的前端框架之一。

核心概念一:React 是什么?

  1. 一个库,而非完整的框架​:与 Angular 不同,React 只专注于解决一个问题——构建用户界面。它主要负责视图层(View Layer)。这意味着路由、状态管理、构建工具等通常需要与其他库(如 React Router, Redux, Webpack)配合使用,这给了开发者更大的灵活性。

  2. 声明式​:你只需要“声明”或描述你的界面在不同状态(State)下应该是什么样子(Like a blueprint)。React 会负责根据数据状态的变化,高效地更新和渲染正确的组件。你不需要直接操作 DOM(命令式编程),这大大简化了代码逻辑。

    • 声明式 vs 命令式​:

      • 命令式​:“用 JavaScript 找到那个按钮(document.getElementById(‘btn’)),给它添加一个点击事件监听器,当点击时,找到那个 div(document.getElementById(‘text’)),把它的样式 display 属性改成 ‘block’。”

      • 声明式​:“这个 Modal组件是否显示,取决于 isModalOpen这个状态变量是否为 true。当按钮被点击时,我们只需要把 isModalOpen设置为 true即可,UI 会自动更新。”

  3. 基于组件​:React 将 UI 拆分成独立、可复用的代码片段(即组件),每个组件负责渲染一部分界面。你可以像搭积木一样组合这些组件来构建复杂的 UI。组件逻辑使用 JavaScript 编写,而非模板语言,因此你可以轻松地在组件中传递丰富的数据流。


核心概念二:为什么 React 如此流行?(它的优势)

  1. 虚拟 DOM (Virtual DOM)​:

    • 是什么​:一个轻量级的 JavaScript 对象,是真实 DOM 的内存表示。

    • 工作原理​:

      1. 当组件状态改变时,React 会先在内存中创建一个新的虚拟 DOM 树。

      2. 将新的虚拟 DOM 树与之前的虚拟 DOM 树进行对比(这个过程叫做 ​​“Diffing”​)。

      3. React 计算出两者之间最高效的差异(Diff)。

      4. 最后,React 将这些差异“批量”更新到真实的 DOM 上(这个过程叫做 ​​“Reconciliation”​)。

    • 好处​:避免直接操作真实 DOM(性能开销大),极大地提升了性能和应用响应速度。

  2. 可复用组件:

    • 通过组合组件来构建应用,使得代码更容易维护和复用。一个团队可以建立自己的组件库,保证设计和技术的一致性。

  3. 强大的生态系统和社区:

    • React 拥有极其丰富的生态系统,包括路由(React Router)、状态管理(Redux, MobX, Context API)、UI 组件库(Material-UI, Ant Design)等。

    • 庞大的社区意味着遇到问题时很容易找到解决方案和学习资源。

  4. 一次学习,多处编写:

    • React 的设计理念不仅限于 Web。你可以使用 React Native 来开发原生移动应用(iOS 和 Android),使用 React 360 来开发 VR 应用。其核心思想是相通的。


核心概念三:现代 React 开发的核心 —— Hooks

在早期,React 主要使用 ​类组件(Class Components)​​ 来管理状态和生命周期。自从 React 16.8 引入 ​Hooks​ 后,​函数组件(Function Components)​​ 成为了主流写法,因为它更简洁、更易理解。

最常用的两个 Hook:

  1. useState:

    • 用于在函数组件中添加和管理状态(State)。

    • const [count, setCount] = useState(0);

    • 它返回一个状态值 (count) 和一个更新该状态的函数 (setCount)。

  2. useEffect:

    • 用于在函数组件中执行“副作用”操作(如数据获取、订阅、手动修改 DOM 等)。

    • 它可以模拟类组件中的生命周期方法(如 componentDidMount, componentDidUpdate, componentWillUnmount)。

其他重要 Hook:useContext, useReducer, useCallback, useMemo等。


一个简单的 React 代码示例

这是一个使用现代 React(Hooks)编写的计数器组件:

// 1. 导入 React 和必要的 Hooks
import React, { useState } from 'react';

// 2. 创建一个函数组件
function Counter() {
  // 3. 使用 useState Hook 声明一个状态变量 ‘count’,初始值为 0
  const [count, setCount] = useState(0);

  // 4. 组件的 UI 描述
  return (
    <div>
      <p>你点击了 {count} 次</p>
      {/* 5. 点击按钮时,调用 setCount 来更新状态 */}
      <button onClick={() => setCount(count + 1)}>
        点我增加
      </button>
    </div>
  );
}

// 6. 导出组件以供使用
export default Counter;

代码解释​:

  • 当按钮被点击时,会调用 setCount函数,更新 count的值。

  • count状态一旦改变,React 会自动重新渲染 Counter组件。

  • 重新渲染时,useState会返回最新的 count值,所以 UI 上显示的 {count}也会更新。


JSX 语法

你可能注意到了上面代码中类似 HTML 的语法 (<div>...</div>),它实际上是 ​JSX

  • JSX​ 是 JavaScript 的语法扩展,允许你在 JavaScript 代码中编写类似 HTML 的结构。

  • 它最终会被编译成普通的 JavaScript 函数调用(React.createElement),用来描述 UI 应该长什么样。

  • 它使得编写 React 组件变得更加直观和可读。


学习路径建议

  1. 基础​:掌握 JavaScript (ES6+),特别是箭头函数、解构赋值、模块化(import/export)。

  2. React 核心​:学习组件、JSX、Props(属性)、State(状态)、事件处理。

  3. 现代 React​:重点学习 Hooks (useState, useEffect等)。

  4. 生态工具​:根据项目需求,学习路由 (React Router)、状态管理 (Context API, Redux)、构建工具 (Vite 或 Create React App)。

总结

React 是一个用于构建高效、灵活的用户界面的声明式、基于组件的 JavaScript 库。其虚拟 DOM​ 机制提供了卓越的性能,​组件化思想促进了代码的复用和维护,而 ​Hooks​ 则让函数组件成为了强大且简洁的开发范式。凭借其庞大的生态系统和社区支持,React 无疑是现代前端开发中最主流和值得学习的技术之一。


网站公告

今日签到

点亮在社区的每一天
去签到