React函数组件详解

简介: React函数组件详解

通过 Props 传递数据

让我们试试水,并尝试将数据从电路板组件传输到正方形组件。
我们强烈建议您在本教程中编写代码时不要使用复制/粘贴。这将加深你对react的记忆和理解。
在board组件的rendersquare方法中,我们将代码重写如下,将名为value的prop传递给square:

class ShoppingList extends React.Component {
  render() {
    return (
      <div className="shopping-list">
        <h1>Shopping List for {this.props.name}</h1>
        <ul>
          <li>Instagram</li>
          <li>WhatsApp</li>
          <li>Oculus</li>
        </ul>
      </div>
    );
  }
}
class Board extends React.Component {
  renderSquare(i) {
    return <Square value={i} />;
  }
}

在这里插入图片描述
现在,让我们修改正方形组件的渲染方法,以便无论何时单击正方形,都可以显示当前状态值:
在<按钮>标签中,放置此道具。值被此状态替换。价值
设置onclick={…}事件侦听器函数被onclick={()=>this.setstate({value:'x}})替换。
为了更好的可读性,将classname和onclick的属性写成两行。
修改后,方形组件中渲染方法的返回值中的标记变为:

class Square extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      value: null,
    };
  }

  render() {
    return (
      <button
        className="square"
        onClick={() => this.setState({value: 'X'})}
      >
        {this.state.value}
      </button>
    );
  }
}

在方形组件集状态的渲染方法中的onclick事件侦听器函数中调用此函数,我们可以在每次单击<按钮>时通知react重新渲染方形组件。更新组件后,此状态。value的值将变成“x”,因此我们可以在游戏板上看到x。单击任意正方形,将显示X。
每次在组件中调用setstate时,react将自动更新其子组件。

函数组件

接下来,我们将正方形组件重写为函数组件。
如果要编写的组件仅包含渲染方法而不包含状态,则更容易使用功能组件。我们不需要定义来自react组件类的继承,我们可以定义一个函数,该函数将props作为参数,然后返回要呈现的元素。函数组件编写起来不像类组件那么麻烦。许多组件可以使用功能组件编写。
用以下函数替换square类:

function Square(props) {
  return (
    <button className="square" onClick={props.onClick}>
      {props.value}
    </button>
  );
}

当我们将square更改为函数组件时,我们还将onclick={()=>this.Props.onclick()}更改为较短的onclick={Props.onclick}(请注意,两侧没有括号)。
上面提到的react元素在JavaScript中被视为一级JavaScript对象,因此我们可以将react元素作为参数传递给应用程序。在react中,我们还可以使用react元素数组来渲染多个元素。
在JavaScript中,数组有一个map()方法,该方法通常用于将一个数组映射到另一个数组,例如:

const numbers = [1, 2, 3];
const doubled = numbers.map(x => x * 2); // [2, 4, 6]

在这里插入图片描述

相关文章
|
2月前
|
存储 前端开发 索引
REACT 在组件之间共享状态
REACT 在组件之间共享状态
|
4天前
|
前端开发 JavaScript 数据可视化
使用React的函数式组件实现一个具有过渡变化、刻度切换、点击高亮的柱状图DIY组件
本文展示了如何使用React的函数式组件实现一个具有过渡变化、刻度切换、点击高亮效果的自定义柱状图组件,并提供了完整的示例代码和实现效果。
11 1
使用React的函数式组件实现一个具有过渡变化、刻度切换、点击高亮的柱状图DIY组件
|
3天前
|
前端开发
如何编写React函数组件
【8月更文挑战第17天】如何编写React函数组件
7 2
|
6天前
|
前端开发 JavaScript
|
4天前
|
前端开发 C++
使用 Vite 创建 React+TS+SW 项目并整合 AntDesign 、Scss 等组件或插件
本文记录了如何使用Vite创建一个React+TypeScript+Service Workers(SW)项目,并整合AntDesign组件库和Scss等插件,包括项目的创建、配置问题解决、AntDesign和Scss的整合方法。
18 1
|
11天前
|
前端开发 JavaScript 开发者
React组件与JSX之间的区别是什么
【8月更文挑战第9天】 React组件与JSX之间的区别是什么
30 4
|
7天前
|
前端开发 数据安全/隐私保护
React——受控组件和非受控组件【八】
React——受控组件和非受控组件【八】
21 0
|
7天前
|
前端开发 JavaScript
React——组件的三大核心属性【七】
React——组件的三大核心属性【七】
16 0
|
7天前
|
Web App开发 前端开发 JavaScript
React——前端开发中模块与组件【四】
React——前端开发中模块与组件【四】
16 0
|
1月前
|
存储 前端开发 JavaScript
前端框架与库 - React基础:组件、Props、State
【7月更文挑战第12天】React是JavaScript库,专注UI构建,基于组件化。组件是UI模块,可函数式或类定义。Props是组件间安全传递数据的只读参数,用defaultProps和propTypes保证正确性。State则是组件内部可变数据,用于驱动更新。使用setState()确保正确变更和渲染。了解并妥善处理这些概念是高效React开发的基础。