«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Рендеринг реквизитов в реакции для функциональных компонентов

Рендеринг реквизитов в реакции для функциональных компонентов

Опубликовано 7 ноября 2024 г.
Просматривать:779

Render Props in react for functional components

В React Render Props — это метод, используемый для совместного использования логики между компонентами с помощью функции. Вместо использования дочерних элементов или композиции в качестве реквизита передается функция для динамического рендеринга контента. Этот подход хорошо работает с функциональными компонентами и хуками.

Вот пример реализации 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 (
    
{render(mousePosition)}
); }; // Component that consumes the render props const App = () => { return (

Mouse Tracker

(

Mouse Position: {x}, {y}

)}/>
); }; export default App;

Объяснение:

  • MouseTracker — это функциональный компонент, принимающий свойство рендеринга.
  • Свойство render — это функция, которая получает положение мыши и возвращает JSX.
  • Компонент App передает функцию в качестве свойства рендеринга, которая отображает координаты x и y мыши.

Этот шаблон обеспечивает большую гибкость при выборе способа отображения контента на основе логики внутри компонента MouseTracker.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/imyusufakhtar/render-props-in-react-for-functional-comComponents-2a3k?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3