当前位置:首页 > 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'));

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

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)模式 通过高阶组件包装增强功能:

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如何调用react组件

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

相关文章

vue实现组件拖放

vue实现组件拖放

Vue 实现组件拖放的方法 使用 HTML5 原生拖放 API HTML5 提供了原生的拖放 API,可以通过 draggable 属性、dragstart、dragend、dragover 和 dr…

vue组件的实现

vue组件的实现

Vue 组件的实现方式 Vue 组件可以通过多种方式实现,主要包括单文件组件(SFC)、全局注册和局部注册。以下是常见的实现方法: 单文件组件(SFC) 单文件组件是 Vue 最推荐的组件化开发方…

vue实现组件循环

vue实现组件循环

Vue 实现组件循环的方法 在 Vue 中,可以通过 v-for 指令实现组件的循环渲染。以下是几种常见的实现方式: 使用 v-for 渲染数组 通过 v-for 遍历数组数据,动态生成组件列表:…

vue如何实现目录组件

vue如何实现目录组件

实现目录组件的基本思路 在Vue中实现目录组件通常需要结合页面内容的结构化数据(如标题层级),通过动态渲染生成可交互的目录。核心步骤包括提取标题、生成目录结构、实现滚动联动等。 提取标题信息 通过d…

uniapp倒计时组件

uniapp倒计时组件

uniapp倒计时组件实现方法 使用内置组件实现 uniapp提供了<countdown>组件用于倒计时功能,支持自定义格式和样式。示例代码如下: <countdown :…

JS实现跳表

JS实现跳表

跳表的基本概念 跳表(Skip List)是一种基于概率的数据结构,允许快速查询、插入和删除操作,时间复杂度平均为O(log n)。它通过多层链表实现,每一层都是下一层的子集,高层链表跳过多个元素,从…