当前位置:首页 > React

react如何重用组件

2026-01-23 18:28:52React

React 重用组件的常用方法

通过 Props 传递数据
将组件设计为接收动态数据,通过 props 传递不同内容。例如:

function Button({ text, onClick }) {
  return <button onClick={onClick}>{text}</button>;
}
// 重用示例
<Button text="提交" onClick={handleSubmit} />
<Button text="取消" onClick={handleCancel} />

使用 Children 插槽
通过 props.children 允许组件嵌套任意内容,增强灵活性:

react如何重用组件

function Card({ children }) {
  return <div className="card">{children}</div>;
}
// 重用示例
<Card><h1>标题</h1></Card>
<Card><p>正文内容</p></Card>

高阶组件(HOC)
通过函数包装组件,复用逻辑(如鉴权、数据获取):

function withAuth(WrappedComponent) {
  return (props) => {
    const isAuthenticated = checkAuth();
    return isAuthenticated ? <WrappedComponent {...props} /> : <LoginPage />;
  };
}
const AuthButton = withAuth(Button);

自定义 Hook
提取通用逻辑到 Hook 中,供多个组件调用:

react如何重用组件

function useCounter(initialValue) {
  const [count, setCount] = useState(initialValue);
  const increment = () => setCount(count + 1);
  return { count, increment };
}
// 组件中调用
const { count, increment } = useCounter(0);

组件组合(Composition)
通过拆分小组件再组合实现复用:

function Form() {
  return (
    <form>
      <Input label="用户名" />
      <Input label="密码" type="password" />
    </form>
  );
}

Context API
跨层级共享数据,避免逐层传递 Props:

const ThemeContext = createContext('light');
function App() {
  return (
    <ThemeContext.Provider value="dark">
      <Toolbar />
    </ThemeContext.Provider>
  );
}
// 子组件通过 useContext(ThemeContext) 获取值

注意事项

  • 避免过度抽象:仅在逻辑或 UI 确实可复用时拆分组件。
  • 命名规范:组件名使用 PascalCase,Hook 名以 use 开头。
  • 性能优化:对高频重用的组件使用 React.memo 避免不必要的渲染。

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

相关文章

react如何使用

react如何使用

React 的基本使用 React 是一个用于构建用户界面的 JavaScript 库,以下是一些核心概念和使用方法。 安装 React 通过 create-react-app 快速搭建 Reac…

电脑如何安装react

电脑如何安装react

安装 Node.js 和 npm React 项目依赖 Node.js 环境,需先安装 Node.js(自带 npm)。访问 Node.js 官网 下载 LTS 版本,运行安装程序并完成配置。安装后,…

vue radio组件实现

vue radio组件实现

Vue Radio 组件实现 在 Vue 中实现 Radio 组件可以通过原生 HTML 的 <input type="radio"> 结合 Vue 的响应式特性,或者使用第三方 UI 库…

vue实现tooltips组件

vue实现tooltips组件

Vue实现Tooltips组件的方法 基础实现:使用Vue指令 创建一个自定义指令v-tooltip,通过鼠标事件触发提示框的显示与隐藏。 Vue.directive('tooltip', {…

vue哪个组件实现动画

vue哪个组件实现动画

在Vue中实现动画效果,可以通过以下组件和方法实现: Vue内置动画组件 Vue提供了<transition>和<transition-group>两个内置组件,用于处理进…

vue实现穿梭框树组件

vue实现穿梭框树组件

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