当前位置:首页 > 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)模式 通过函数接收组件并返回增强后的新组件。适合跨组件共享逻辑,如认证、日志等横切关注点。

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);
  // ...
}

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

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 动态决定渲染内容,实现行为与渲染分离。适合需要高度自定义渲染的场景。

react如何重用组件

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
分享给朋友:

相关文章

如何优化react

如何优化react

优化 React 性能的方法 使用 React.memo 或 PureComponent 对于函数组件,使用 React.memo 进行记忆化,避免不必要的重新渲染。类组件可以使用 PureCompo…

react如何encode

react如何encode

React 中编码的实现方式 在 React 中,编码通常涉及对 URL、HTML 实体或特殊字符的处理。以下是几种常见的编码方法: 使用 encodeURIComponent 进行 URL 编码…

react如何拓展

react如何拓展

React 拓展方法 使用高阶组件(HOC) 高阶组件是一种复用组件逻辑的方式,通过接收一个组件并返回一个新组件实现功能拓展。例如,为组件添加日志功能: function withLogging…

react如何循环

react如何循环

循环渲染列表 在React中循环渲染列表通常使用map方法,这是最常用的方式。通过map可以将数组中的每个元素转换为React元素并渲染到页面上。 const items = ['Apple', '…

如何关闭react

如何关闭react

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

react路由如何配置

react路由如何配置

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