当前位置:首页 > React

react如何重用组件

2026-03-31 01:33:26React

React 重用组件的常用方法

通过 props 传递数据和配置 将组件设计为可配置的,通过 props 接收不同参数。例如创建一个可复用的按钮组件,通过 props 控制其样式、文本和点击行为。

function Button({ color, text, onClick }) {
  return (
    <button style={{ backgroundColor: color }} onClick={onClick}>
      {text}
    </button>
  );
}

// 使用
<Button color="blue" text="Submit" onClick={handleSubmit} />

使用 children 属性组合组件 通过 children 实现内容注入,允许组件包裹任意子元素。这种方式适合构建布局组件或容器组件。

function Card({ children }) {
  return <div className="card">{children}</div>;
}

// 使用
<Card>
  <h2>Title</h2>
  <p>Content</p>
</Card>

高阶组件(HOC)模式 通过函数接收组件并返回增强后的新组件。适合跨组件共享逻辑,如认证、日志等横切关注点。

react如何重用组件

function withLogger(WrappedComponent) {
  return function(props) {
    console.log('Rendered:', WrappedComponent.name);
    return <WrappedComponent {...props} />;
  };
}

const EnhancedComponent = withLogger(MyComponent);

自定义 Hook 共享状态逻辑 将组件中的状态逻辑提取为可重用的 Hook。适合非视觉逻辑的复用,如表单处理、数据获取等。

function useCounter(initialValue) {
  const [count, setCount] = useState(initialValue);
  const increment = () => setCount(c => c + 1);
  return { count, increment };
}

// 在多个组件中使用
function ComponentA() {
  const { count, increment } = useCounter(0);
  // ...
}

组件组合设计 通过多个小组件组合成复杂组件。将功能拆分为更小的单元,通过组合方式复用。

react如何重用组件

function Form() {
  return (
    <form>
      <Input label="Username" />
      <Input label="Password" type="password" />
      <Button>Submit</Button>
    </form>
  );
}

Context API 共享全局数据 通过 Context 提供全局可访问的数据,避免多层 props 传递。适合主题、用户信息等全局状态。

const ThemeContext = createContext('light');

function App() {
  return (
    <ThemeContext.Provider value="dark">
      <Toolbar />
    </ThemeContext.Provider>
  );
}

function Toolbar() {
  const theme = useContext(ThemeContext);
  // ...
}

渲染属性(Render Props) 通过函数 prop 动态决定渲染内容,实现行为与渲染分离。适合需要高度自定义渲染的场景。

function MouseTracker({ render }) {
  const [position, setPosition] = useState({ x: 0, y: 0 });
  // ...
  return render(position);
}

// 使用
<MouseTracker render={({ x, y }) => (
  <p>Mouse position: {x}, {y}</p>
)} />

标签: 组件react
分享给朋友:

相关文章

vue实现穿梭框树组件

vue实现穿梭框树组件

Vue 穿梭框树组件实现 穿梭框树组件通常结合了树形结构和穿梭框功能,允许用户在左右两栏之间移动树节点数据。以下是基于 Vue 的实现方案: 核心功能设计 数据结构 树形数据通常采用嵌套结构,例如:…

elementui组件

elementui组件

ElementUI 组件概述 ElementUI 是一套基于 Vue.js 的桌面端组件库,提供丰富的 UI 组件,适用于快速开发中后台系统。以下是其核心组件分类及典型用法。 基础组件 Button…

react 如何跳转

react 如何跳转

使用 React Router 进行页面跳转 React 应用中通常使用 react-router-dom 库实现页面跳转。以下是几种常见的跳转方式: 安装依赖 npm install react…

如何关闭react

如何关闭react

关闭React应用的步骤 在开发或运行React应用时,可能需要关闭正在运行的开发服务器或停止应用。以下是几种常见情况的处理方法: 停止开发服务器 如果正在使用npm start或yarn star…

odyssey react 如何

odyssey react 如何

Odyssey React 是耐克推出的一款跑鞋系列,以其轻量化设计和React泡沫缓震技术著称。以下是关于该系列鞋款的主要特点和使用建议: 核心特点 React泡沫中底提供出色的能量回馈和缓震效果…

react路由如何配置

react路由如何配置

React 路由配置方法 安装 React Router 使用 npm 或 yarn 安装 React Router 的 DOM 版本: npm install react-router-dom #…