React Props

Props 是传递给 React 组件的参数。

Props 通过 HTML 属性传递给组件。

Props 代表属性。

React Props

React Props 类似于 JavaScript 中的 函数参数 和 HTML 中的 属性

要将道具发送到组件中,请使用与 HTML 属性相同的语法:

实例

向 Car 元素添加一个 brand 属性:

  1. const myelement = <Car brand="Ford" />;

组件将参数作为 props 对象接收:

实例

在组件中使用 brand 属性:

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. function Car(props) {
  4. return <h2>I am a { props.brand }!</h2>;
  5. }
  6. const myelement = <Car brand="Ford" />;
  7. ReactDOM.render(myelement, document.getElementById('root'));

传递数据

Props 也是将数据作为参数从一个组件传递到另一个组件的方式。

实例

将 brand 属性从 Garage 组件发送到 Car 组件中:

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. function Car(props) {
  4. return <h2>I am a { props.brand }!</h2>;
  5. }
  6. function Garage() {
  7. return (
  8. <>
  9. <h1>Who lives in my garage?</h1>
  10. <Car brand="Ford" />
  11. </>
  12. );
  13. }
  14. ReactDOM.render(<Garage />, document.getElementById('root'));

如果要发送一个变量,而不是上面示例中的字符串,则只需将变量名放在花括号内即可:

实例

创建一个名为 carName 的变量并将其发送到 Car 组件:

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. function Car(props) {
  4. return <h2>I am a { props.brand }!</h2>;
  5. }
  6. function Garage() {
  7. const carName = "Ford";
  8. return (
  9. <>
  10. <h1>Who lives in my garage?</h1>
  11. <Car brand={ carName } />
  12. </>
  13. );
  14. }
  15. ReactDOM.render(<Garage />, document.getElementById('root'));

或者是一个对象:

实例

创建名为 carInfo 的对象并将其发送到 Car 组件:

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. function Car(props) {
  4. return <h2>I am a { props.brand.model }!</h2>;
  5. }
  6. function Garage() {
  7. const carInfo = { name: "Ford", model: "Mustang" };
  8. return (
  9. <>
  10. <h1>Who lives in my garage?</h1>
  11. <Car brand={ carInfo } />
  12. </>
  13. );
  14. }
  15. ReactDOM.render(<Garage />, document.getElementById('root'));
注意:React Props 是只读的!如果试图更改它们的值,则会出现错误。