杭州电子商务研究院

通过组件的渲染函数传递 Props

2020-11-09 08:00飞浪

介绍

树形结构与浏览器中发生的任何编程都密切相关。文档对象模型(简称 DOM)包含页面上要显示的所有 HTML 元素,本身就是一个大型树形结构。因此,React 组件层次结构自然会以相同的方式建模,尽管使用的是 JavaScript 而不是原始 HTML。

React 组件包含子组件,而子组件又可以包含更多子组件,以此类推。组件的这种父子关系结构意味着,当你在 React 中编写代码时,你经常需要将数据从父组件传递到子组件。实现这一点的主要方法之一是通过传递组件 props。

在本指南中,您将了解向子组件传递数据的主要机制之一:在渲染函数内部将 props 传递给子组件。

让我们开始吧!

传递 Props

将 props 从父组件传递给子组件非常简单。首先,确保您有一个父组件。在下面的示例中,名为MyApp的根级 React 组件充当父组件。

从这里,您可以创建所需的子组件。在下面的示例中,有三个子组件:TitleBar、NavBar和DataView 。这三个组件希望它们的数据通过从父组件传入的 props 获得。您可以通过在父组件渲染函数内部声明这些 props 时将这些 props 传递给子组件来实现这一点。下面的代码显示了这种可能性。

      import React from 'react';

class MyApp extends React.Component {
    dataPoints = [ 1, 2, 3, 4, 5 ];
    title = "Welcome To My App!";
    navStructure = [
        {
            text: "Home",
            url: "/home"
        },
        {
            text: "About",
            url: "/about"
        },
        {
            text: "Contact Us",
            url: "/contact-us"
        }
    ];



    render() {
        const { title, navStructure, dataPoints } = this.props;

        return (
            <div>
                <TitleBar title={ title } />
                <NavBar navStructure={ navStructure }>
                <DataView data={ dataPoints }>
            </div>
        )
    }

}
    

如您所见,父组件MyApp在实例化时声明了三个属性。这些属性是dataPoints、title和navStructure。接下来,仔细查看render函数,您可以看到我们前面提到的子组件在其中声明。此外,每个声明的组件属性都会传递给正确的子组件。上述语法是促进 React 中这种特定类型的数据传输所需的语法。

结论

从数据传输角度来看,通过 props 将数据从父组件传递到子组件是 React 应用结构的重要组成部分。在将数据从父组件传递到子组件时,React 在很大程度上遵循自上而下的方法。组件的渲染函数是数据传输发生的地方。

但这并不是传递数据的唯一方法!您还可以将组件状态从父组件传递到子组件。不仅如此,新的上下文 API 以及 React 门户还允许您以各种其他方式传输数据,从而更好地满足您的应用需求。

有关 React 的更多信息以及在应用内传输数据的不同方式,请查看 React文档。

曝光28068浏览1501