当前位置:首页 > React

JS如何调用react组件

2026-01-24 07:16:32React

调用React组件的常见方法

在JavaScript中调用React组件通常涉及以下几种场景和方式:

直接渲染组件 通过ReactDOM.render()方法将组件渲染到DOM节点:

import React from 'react';
import ReactDOM from 'react-dom';
import MyComponent from './MyComponent';

ReactDOM.render(<MyComponent />, document.getElementById('root'));

动态导入组件 使用动态导入实现按需加载:

JS如何调用react组件

import React, { Suspense } from 'react';

const LazyComponent = React.lazy(() => import('./LazyComponent'));

function App() {
  return (
    <Suspense fallback={<div>Loading...</div>}>
      <LazyComponent />
    </Suspense>
  );
}

通过ref调用组件方法 使用forwardRefuseImperativeHandle暴露组件方法:

const ChildComponent = React.forwardRef((props, ref) => {
  React.useImperativeHandle(ref, () => ({
    doSomething() {
      console.log('Method called');
    }
  }));
  return <div>Child</div>;
});

function Parent() {
  const childRef = React.useRef();
  return (
    <>
      <ChildComponent ref={childRef} />
      <button onClick={() => childRef.current.doSomething()}>
        Call Method
      </button>
    </>
  );
}

高阶组件(HOC)模式 通过高阶组件包装增强功能:

JS如何调用react组件

function withLogger(WrappedComponent) {
  return function(props) {
    console.log('Component rendered');
    return <WrappedComponent {...props} />;
  };
}

const EnhancedComponent = withLogger(MyComponent);

Context API调用 通过Context跨层级调用:

const MyContext = React.createContext();

function Parent() {
  return (
    <MyContext.Provider value={{ callMethod: () => alert('Called') }}>
      <Child />
    </MyContext.Provider>
  );
}

function Child() {
  const context = React.useContext(MyContext);
  return <button onClick={context.callMethod}>Trigger</button>;
}

自定义Hook封装 将组件逻辑提取为可复用的Hook:

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

function Counter() {
  const { count, increment } = useCounter();
  return <button onClick={increment}>{count}</button>;
}

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

相关文章

uniapp 分页组件

uniapp 分页组件

uniapp 分页组件实现方法 在uniapp中实现分页功能,可以通过自定义组件或使用第三方组件库完成。以下是几种常见实现方式: 自定义分页组件 创建一个名为uni-pagination的组件,模板…

如何缓存react组件

如何缓存react组件

缓存React组件的方法 React.memo 使用React.memo对函数组件进行浅比较缓存,避免不必要的重新渲染。适用于props不变的场景。 const MemoizedComponen…

vue 组件实现 遮罩

vue 组件实现 遮罩

Vue 组件实现遮罩层的方法 基础遮罩层实现 创建一个简单的遮罩层组件,使用绝对定位覆盖整个视口。以下是一个基础实现: <template> <div class="mask"…

vue实现秒表组件

vue实现秒表组件

实现秒表组件的基本思路 使用Vue实现秒表组件需要管理时间状态、控制计时器的启动/暂停/重置功能,并通过计算属性动态显示格式化时间。核心逻辑包括利用setInterval更新计时数据,并通过生命周期钩…

vue 实现toast组件

vue 实现toast组件

实现 Vue Toast 组件的方法 创建基础 Toast 组件 在 Vue 项目中创建一个基础 Toast 组件,通常包含消息内容和显示控制逻辑。 <template> &…

vue实现分页组件

vue实现分页组件

Vue 分页组件实现 基础分页组件结构 创建一个名为 Pagination.vue 的文件,包含以下基础模板和逻辑: <template> <div class="pa…