首页  >  文章  >  web前端  >  在 React 中为功能组件渲染 Props

在 React 中为功能组件渲染 Props

Patricia Arquette
Patricia Arquette原创
2024-09-30 12:31:02953浏览

Render Props in react for functional components

在 React 中,Render Props 是一种使用函数 prop 在组件之间共享逻辑的技术。不使用子项或组合,而是将函数作为 prop 传递以动态呈现内容。这种方法适用于功能组件和钩子。

以下是如何使用功能组件实现 Render Props 的示例:

例子

import React, { useState } from 'react';

// The component using render props
const MouseTracker = ({ render }) => {
  const [mousePosition, setMousePosition] = useState({ x: 0, y: 0 });

  const handleMouseMove = (event) => {
    setMousePosition({
      x: event.clientX,
      y: event.clientY,
    });
  };

  return (
    <div style={{ height: '100vh' }} onMouseMove={handleMouseMove}>
      {render(mousePosition)}
    </div>
  );
};

// Component that consumes the render props
const App = () => {
  return (
    <div>
      <h1>Mouse Tracker</h1>
      <MouseTracker render={({ x, y }) => (
        <h2>Mouse Position: {x}, {y}</h2>
      )}/>
    </div>
  );
};

export default App;

解释:

  • MouseTracker 是一个需要渲染道具的功能组件。
  • render prop 是一个接收鼠标位置并返回 JSX 的函数。
  • App 组件传递一个函数作为 render prop,它显示鼠标的 x 和 y 坐标。

此模式可以更灵活地决定如何根据 MouseTracker 组件内部的逻辑呈现内容。

以上是在 React 中为功能组件渲染 Props的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn