插件窝 干货文章 React 中渲染 Props 的功能组件

React 中渲染 Props 的功能组件

render 组件 MouseTracker gt 460    来源:    2024-10-19

在 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: onmousemove="{handleMouseMove}">
      {render(mousePosition)}
    </div>
  );
};

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

export default App;

解释:

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

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