杭州电子商务研究院

在 React 的渲染函数中返回变量

2020-11-10 08:00飞浪

介绍

JSX 代表 JavaScript XML,这是一种编码标准,允许您内联使用 JavaScript 表达式和其他 HTML 功能。使用 JSX,您可以创建一个函数并将一组 JSX 元素返回给一个变量,该变量用于在 React 中的 render ()函数内渲染元素。

本指南将帮助您了解如何将 JSX 返回给变量并将 JSX 标记呈现到 DOM。

将静态 JSX 内容返回给变量

JSX 与 React 一起使用,可以移除组件中松散耦合的部分,例如 HTML、CSS 和 JavaScript,并让它们在名为组件的单个文件中协同工作。它的语法易于编写且视觉效果引人注目。因此,JSX 元素也可以返回到变量,并且该变量可用于渲染。

为了进行示例演示,我们在函数内创建一个静态表并将其返回给变量。我们还将在函数内创建一个静态<table> 。

      getTable() {
    return (
      <div>
        <table border="2">
          <tr>
            <td>Row 1 Col 1</td>
            <td>Row 1 Col 2</td>
          </tr>
          <tr>
            <td>Row 2 Col 1</td>
            <td>Row 2 Col 2</td>
          </tr>
          <tr>
            <td>Row 3 Col 1</td>
            <td>Row 3 Col 2</td>
          </tr>
        </table>
      </div>
    );
}
    

该表在函数内创建,并向函数返回一组 JSX 标记。因此,一旦您访问该函数,表的各个 JSX 标记将被替换。

下一步是调用函数并将其分配给变量,如下所示。

      render() {
    // Calling function and assigned it to the variable
    const mytable = this.getTable();

    return (
      <>
        {/* rendered the JSX */}
        <div>{mytable}</div> 
      </>
    );
}
    

函数this.getTable()被调用并返回完整的<table>元素,因此一旦将其放置在return()中,该元素就会被创建到 DOM 中。

条件渲染 JSX

静态和动态内容都可以提供给 DOM。因此,您可以根据各个条件运算符(例如三元运算符)呈现动态内容。例如,如果您想显示活跃或不活跃的登录用户状态,状态颜色或标签可能会根据条件而变化,例如变为绿色或红色。

为了更清楚的理解,创建两个函数,分别显示活动状态标签和非活动状态标签。

      activeContent() {
   return <label>Active</label>;
}

inActiveContent() {
   return <label>In-active</label>;
}
    

上述每个函数都将特定的 JSX 元素作为 JSX <label>元素返回,但是,您应该有一些标识符或条件来动态显示状态。

创建状态对象中的键,如下所示。

      constructor(props) {
    super(props);
    this.state = {
      isActive: false
    };
}
    

观察到组件中有一个名为isActive的键,并且相同的变量可以用作可以为真或为假的条件。

现在,让我们调用上述两个函数并将其结果放入附加变量中。

      const activeVariable = this.activeContent();
const inactiveVariable = this.inActiveContent();
    

activeVariable用于保存活动标签状态,inactiveVariable保存非活动状态标签。两者可以使用三元运算符互换,如下所示。

      render() {
    const activeVariable = this.activeContent();
    const inactiveVariable = this.inActiveContent();

    return (
      <>
        {this.state.isActive ? activeVariable : inactiveVariable}
      </>
    );
}
    

上面的三元条件使用this.state.isActive,并根据其值(true 或 false)将相应的标签渲染到 DOM 中。在render()中使用变量是一种常见的方法。大多数 React 开发人员使用它们来管理来自函数实现的动态内容,并且它们在整个组件中都很容易操作。

结论

React 中的 JSX 不是必需的方法,但它可以有效地用于使用基于 JavaScript 的表达式和其他与 HTML 标记相关的功能。

在渲染函数中返回变量是管理 JSX 标记的最简单方法,无论内容是静态的还是动态的。尝试一下并深入了解 JSX!

了解更多

探索 Pluralsight 的这些 React 课程以继续学习:

曝光23356浏览1256