Render Props в React

НАВИГАЦИЯ ПО СТРАНИЦЕ

Render Props Динамическое изменение

Паттерн Render Props в React используется для передачи функции в компоненты через их дочерние элементы. Это позволяет динамически изменять содержимое компонентов и повторно использовать логику в разных частях приложения. Давайте рассмотрим пример его использования:

Использование паттерна Render Props:

import React from 'react';

class Mouse extends React.Component {
  state = { x: 0, y: 0 };

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

  render() {
    return (
      <div style={{ height: '100vh' }} onMouseMove={this.handleMouseMove}>
        {this.props.children(this.state)}
      </div>
    );
  }
}

class App extends React.Component {
  render() {
    return (
      <div>
        <h1>Move the mouse around!</h1>
        <Mouse>
          {({ x, y }) => (
            <p>The current mouse position is ({x}, {y})</p>
          )}
        </Mouse>
      </div>
    );
  }
}

export default App;

Динамическое изменение содержимого компонентов:

В приведенном выше примере компонент <Mouse> принимает функцию в качестве дочернего элемента и передает ей текущие координаты мыши через объект состояния. Затем в компоненте <App> мы используем компонент <Mouse> и передаем ему функцию, которая отображает текущие координаты мыши.

Этот подход позволяет нам динамически изменять содержимое компонентов в зависимости от данных или событий, что делает наше приложение более гибким и масштабируемым.

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