JSX和REACT:学习如何编写可维护代码'
#javascript #教程 #react #cheatsheet

1。简介

欢迎我们探索React!在本文中,我们将讨论React的价值以及今天是否值得学习。我们将深入研究这个流行的前端图书馆,使我们的解释简单易于理解。我们将在途中提供有据可查的代码示例,以帮助澄清概念。所以,让我们潜入!

1.1。反应的价值:今天值得学习

反应通常被描述为库,而不是框架,这使其具有高度的灵活性。这意味着您可以轻松地将其与Web开发堆栈中的其他库或工具集成在一起。此外,React的生态系统包括各种州管理库(例如REDUX和MOBX)和路由解决方案(例如React Router),从而使您有能力根据您的特定需求自定义应用程序。

React一直在发展并适应Web开发趋势的变化,这表明其寿命。随着引入诸如React钩子和并发渲染之类的功能,React继续保持领先地位。今天的学习反应意味着投资可能在未来几年内保持相关性的技术。

总而言之,由于其受欢迎程度,基于组件的建筑,性能,灵活性和防止未来的潜力,React是学习的宝贵技能。如果您想扩大网络开发技能,那么反应绝对值得考虑。

2。反应螺母和螺栓

2.1。反应如何工作?

React围绕组件的概念构建。组件是可重复使用的代码片段,可以管理自己的状态并渲染逻辑。 React应用程序通常由多个组件组成,这些组件共同创建无缝的用户体验。让我们深入研究使反应起作用的关键概念。

2.2。虚拟DOM

React最重要的方面之一是其使用虚拟DOM。虚拟DOM是实际DOM的轻便内存表示形式,它允许反应有效地管理对用户界面的更新。当组件的状态或道具发生变化时,React会创建一个新的虚拟DOM树,并使用称为“对帐”的过程将其与现有过程进行比较。此过程确定将实际DOM与新虚拟DOM同步所需的最小更新集,从而实现了优化的性能。

2.3。对帐

对帐是反应确定当前虚拟DOM与新的过程之间的差异的过程。 React使用扩散算法有效地进行此比较。一旦确定了差异,React将对实际DOM进行必要的更新,以确保仅更新用户界面的更改部分。这有助于提高反应应用的性能,尤其是在处理复杂的UI时。

2.4。组件

如前所述,组件是React应用程序的构件。 React中有两种类型的组件:功能组件和类组件。功能组件是简单的JavaScript函数,返回元素描述屏幕上应该呈现的内容,而类组件是JavaScript类,可扩展React.Component base类并实现render()方法。

2.5。状态和道具

状态和道具是组件在React应用程序中管理和传递数据的两种方式。状态用于将本地数据存储在组件中,而道具用于将数据从父组件传递给其子女。

2.6。活动处理

React提供了一种简单而一致的方法来处理诸如点击,表单提交或键盘输入之类的事件。 React中的事件处理涉及通过事件处理程序作为组件的道具,然后在事件发生时执行。

3。解码JSX

3.1。深入研究JSX及其在React

中的作用

JSX(JavaScript XML)是JavaScript的语法扩展名,可让您在JavaScript文件中编写类似于HTML的代码。 JSX使直接在JavaScript代码中直接创建和管理用户界面的结构变得容易,从而产生更可读和可维护的代码库。

3.1.1。基本语法

在其核心上,JSX允许您在JavaScript代码中编写类似于HTML的元素。这些元素随后由像Babel这样的编译器转换为常规的JavaScript对象,然后在浏览器中执行。

这是简单的JSX元素的示例:

const element = <h1>Hello, world!</h1>;

3.1.2。 JSX中的嵌入表达式

JSX最强大的功能之一是它可以在标记中嵌入JavaScript表达式的能力。为此,只需将表达式包裹在卷曲括号中({})。

示例:

const name = 'John Doe';
const element = <h1>Hello, {name}!</h1>;

3.1.3。属性和道具

JSX元素可以具有属性,就像HTML元素一样。这些属性后来被传递给反应组件作为props。

示例:

const element = <img src="my-image.jpg" alt="A beautiful scenery" />;

注意:由于JSX比HTML更接近JavaScript,因此它对具有多个单词的属性使用了骆驼命名约定,例如onClickclassName

3.1.4。儿童元素和自我关闭标签

JSX元素可以像HTML一样具有子元素。但是,如果一个元素没有任何孩子,则必须用前向斜杠(/)关闭它。

带有子元素的示例:

const element = (
  <div>
    <h1>Hello, world!</h1>
    <p>Welcome to our website.</p>
  </div>
);

带有自关闭标签的示例:

const element = <img src="my-image.jpg" alt="A beautiful scenery" />;

3.1.5。 React组件和JSX

JSX主要用于定义反应组件的结构和外观。功能和类组件都可以返回JSX元素,然后由React渲染。

功能组件示例:

function Welcome(props) {
  return <h1>Hello, {props.name}!</h1>;
}

类组件示例:

class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}!</h1>;
  }
}

4。 “ React Essentials”备忘单

我们将为您提供简洁的“ React Essentials”备忘单,涵盖使用React时最重要的概念和功能。

要开始在项目中使用React,您需要同时导入React和ReactDom:

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

组件是React应用程序的构件。您可以创建这样的功能组件:

function Welcome(props) {
  return <h1>Hello, {props.name}!</h1>;
}

或者,您可以创建类似的类组件:

class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}!</h1>;
  }
}

要在DOM中渲染一个组件,请使用ReactDOM.render()方法:

ReactDOM.render(<Welcome name="John" />, document.getElementById('root'));

道具允许您将数据传递给组件:

function Welcome(props) {
  return <h1>Hello, {props.name}!</h1>;
}

ReactDOM.render(<Welcome name="Jane" />, document.getElementById('root'));

状态允许您将本地数据存储在组件中。要使用状态,您需要使用类组件并初始化构造函数中的状态:

class Clock extends React.Component {
  constructor(props) {
    super(props);
    this.state = { date: new Date() };
  }

  render() {
    return <div>{this.state.date.toLocaleTimeString()}</div>;
  }
}

生命周期方法,例如componentDidMount()componentWillUnmount(),允许您在创建,更新或删除组件时执行操作:

class Clock extends React.Component {
  // ...

  componentDidMount() {
    this.timerID = setInterval(() => this.tick(), 1000);
  }

  componentWillUnmount() {
    clearInterval(this.timerID);
  }

  tick() {
    this.setState({ date: new Date() });
  }

  // ...
}

React允许您使用事件处理程序来处理事件,例如单击按钮或表格提交:

class ButtonClick extends React.Component {
  handleClick() {
    console.log('Button clicked!');
  }

  render() {
    return <button onClick={this.handleClick}>Click me!</button>;
  }
}

您可以根据状态或道具有条件地渲染元素:

function Greeting(props) {
  if (props.isLoggedIn) {
    return <h1>Welcome back!</h1>;
  } else {
    return <h1>Please sign up.</h1>;
  }
}

React钩子使您可以在功能组件中使用状态和生命周期特征。最常见的钩子是useStateuseEffect

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

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

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

    return () => {
      document.title = 'React App';
    };
  });

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
</div>
  );
}

在此简洁的“ React Essentials”备忘单中,我们涵盖了关键概念和功能,例如导入React和ReactDom,创建组件,渲染组件,使用道具,状态和生命周期方法,处理事件,有条件渲染以及有条件的渲染以及反应钩。此快速参考应帮助您掌握React的基本原理,并为构建自己的React应用程序提供基础。请记住,随着React开发人员的学习和成长,请参考此备忘单!

结论

总而言之,JSX是JavaScript的强大语法扩展,已成为React Development不可或​​缺的一部分。它将类似于HTML的元素与JavaScript表达式混合的独特能力简化了构建和维护用户界面的过程。

了解JSX及其在React中的作用无疑将增强您构建强大和视觉吸引力应用程序的能力。拥抱JSX的力量并解锁您项目中反应的全部潜力。