React

简介: 【7月更文挑战第13天】

React 是一个用于构建用户界面的开源JavaScript库,由Facebook维护。它以组件化的方式构建应用程序,使得代码更加模块化、可重用和易于维护。React主要用于构建单页应用程序(SPA)和移动应用的用户界面。

React的核心特性包括:

  1. 组件化:React应用由多个独立、可复用的组件构成,每个组件管理自己的状态。
  2. 虚拟DOM:React为每个DOM对象维护一个轻量级的虚拟DOM副本,当组件状态变化时,React首先在虚拟DOM上进行变化,然后高效地将这些变化应用到实际的DOM上。
  3. 声明式语法:React使用声明式渲染,你只需要描述UI应该呈现的样子,React会负责更新DOM。
  4. 单向数据流:React应用的数据流是单向的,从父组件流向子组件,通过属性(props)传递。
  5. Hooks:React 16.8引入了Hooks,允许在函数组件中使用state和其他React特性。
  6. JSX:React使用JSX语法扩展JavaScript,允许你在JavaScript代码中写类似HTML的标记。

如何使用React:

  1. 设置环境:你可以使用Create React App来快速设置React开发环境。

    npx create-react-app my-app
    cd my-app
    npm start
    
  2. 编写组件:React组件可以是类组件或函数组件。

    • 类组件示例

      import React, { Component } from 'react';
      
      class Greeting extends Component {
        render() {
          return <h1>Hello, {this.props.name}!</h1>;
        }
      }
      
      export default Greeting;
      
    • 函数组件示例

      import React from 'react';
      
      function Greeting(props) {
        return <h1>Hello, {props.name}!</h1>;
      }
      
      export default Greeting;
      
  3. 使用组件:在React应用中,你可以通过<组件名 />的方式使用组件。

    import React from 'react';
    import ReactDOM from 'react-dom';
    import Greeting from './Greeting';
    
    ReactDOM.render(<Greeting name="John" />, document.getElementById('root'));
    
  4. 状态管理:组件可以通过this.setState()(类组件)或useState Hook(函数组件)来管理内部状态。

    • 类组件状态示例

      class Counter extends Component {
        constructor(props) {
          super(props);
          this.state = { count: 0 };
        }
      
        increment() {
          this.setState({ count: this.state.count + 1 });
        }
      
        render() {
          return (
            <div>
              <h1>{this.state.count}</h1>
              <button onClick={() => this.increment()}>Increment</button>
            </div>
          );
        }
      }
      
    • 函数组件状态示例

      import React, { useState } from 'react';
      
      function Counter() {
        const [count, setCount] = useState(0);
      
        function increment() {
          setCount(count + 1);
        }
      
        return (
          <div>
            <h1>{count}</h1>
            <button onClick={increment}>Increment</button>
          </div>
        );
      }
      
  5. 属性传递:父组件通过属性(props)向子组件传递数据。

    function Greeting(props) {
      return <h1>Hello, {props.name}!</h1>;
    }
    
    // 使用组件时传递属性
    <Greeting name="Alice" />
    
  6. 条件渲染:根据条件渲染不同的组件或元素。

    function UserGreeting(props) {
      if (props.isLoggedIn) {
        return <Greeting name={props.name} />;
      } else {
        return <p>Please log in.</p>;
      }
    }
    
  7. 列表渲染:使用map()方法遍历数组,为每项数据渲染元素。

    function ItemList(props) {
      const items = props.items.map((item) =>
        <li key={item.id}>{item.name}</li>
      );
      return <ul>{items}</ul>;
    }
    
目录
相关文章
|
3月前
|
Web App开发 前端开发 JavaScript
React 之 requestIdleCallback 来了解一下
React 之 requestIdleCallback 来了解一下
212 0
|
1月前
|
前端开发 JavaScript 数据管理
React精通之路
【7月更文挑战第6天】构建React精通之路:始于基础(HTML/CSS/JS,React文档),经由环境配置、组件、状态、路由学习;进阶探索Hooks、Redux、性能优化、测试调试;通过实战项目巩固,研究高级技术如HOC;参与开源,关注最新动态,活跃于技术社区,持续学习与成长。
30 0
|
2月前
|
XML 前端开发 JavaScript
什么是react
什么是react
33 4
|
3月前
|
前端开发 JavaScript 算法
|
3月前
|
前端开发 JavaScript 编译器
使用React
使用React
19 0
|
前端开发 JavaScript 数据可视化
react的应用
react的应用
89 1
|
XML 前端开发 JavaScript
react的特点
react的特点
87 0
|
XML 存储 缓存
|
前端开发 JavaScript
React 特点
React 特点
154 0
|
前端开发 调度
一篇必看的React文章
本文适合有 React 基础的小伙伴进阶学习
一篇必看的React文章