当前位置:首页 > React

react如何延迟加载

2026-02-26 06:51:36React

延迟加载的实现方法

React中实现延迟加载(Lazy Loading)通常使用React.lazySuspense组件,结合动态导入(Dynamic Imports)技术。这种方法能有效减少初始加载时间,提升应用性能。

使用React.lazy和Suspense

import React, { Suspense } from 'react';

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

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

React.lazy接收一个返回动态导入的函数,Suspense提供加载中的备用UI(如加载动画)。

react如何延迟加载

路由级别的延迟加载 在React Router中结合延迟加载:

import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';

const Home = React.lazy(() => import('./routes/Home'));
const About = React.lazy(() => import('./routes/About'));

function App() {
  return (
    <Router>
      <Suspense fallback={<div>Loading...</div>}>
        <Routes>
          <Route path="/" element={<Home />} />
          <Route path="/about" element={<About />} />
        </Routes>
      </Suspense>
    </Router>
  );
}

注意事项

命名导出处理 React.lazy默认支持默认导出(default export)。如需命名导出,需创建中间模块:

react如何延迟加载

// MyComponent.js
export const MyComponent = () => <div>Named Export</div>;

// LazyNamedExport.js
export { MyComponent as default } from './MyComponent';

// 使用
const LazyNamed = React.lazy(() => import('./LazyNamedExport'));

错误边界 建议用错误边界(Error Boundary)处理加载失败:

class ErrorBoundary extends React.Component {
  state = { hasError: false };
  static getDerivedStateFromError() { return { hasError: true }; }
  render() { return this.state.hasError ? <h1>Load failed</h1> : this.props.children; }
}

// 使用
<ErrorBoundary>
  <Suspense fallback={<div>Loading...</div>}>
    <LazyComponent />
  </Suspense>
</ErrorBoundary>

替代方案

第三方库

  • @loadable/component:支持服务端渲染和更复杂的场景
    import loadable from '@loadable/component';
    const LazyLoadable = loadable(() => import('./Component'), {
    fallback: <div>Loading...</div>,
    });

图片延迟加载 使用原生loading="lazy"属性或Intersection Observer API

<img src="image.jpg" loading="lazy" alt="Lazy-loaded" />

标签: 加载react
分享给朋友:

相关文章

react如何取消渲染

react如何取消渲染

取消渲染的方法 在React中,取消渲染通常指阻止组件在特定条件下进行不必要的渲染。可以通过以下几种方式实现: 条件渲染 使用条件语句(如if或三元运算符)直接返回null,避免渲染组件内容。例如:…

vue滚动加载实现

vue滚动加载实现

vue滚动加载实现 滚动加载是一种常见的优化手段,通过监听滚动事件动态加载数据,减少初始渲染压力。以下是几种实现方式: 使用IntersectionObserver API Intersection…

如何开发react

如何开发react

开发React应用的基本步骤 安装Node.js和npm 确保系统中已安装Node.js(包含npm)。可通过官网下载安装包,安装后验证版本: node -v npm -v 创建React项目…

react如何刷新

react如何刷新

刷新React组件的方法 使用状态更新触发重新渲染 通过更新组件的状态可以触发重新渲染。React会在状态变化时自动重新渲染组件。 const [count, setCount] = useStat…

react如何分

react如何分

React 分页实现方法 在 React 中实现分页功能可以通过多种方式完成,以下是几种常见的方法: 使用状态管理分页数据 在组件内部维护当前页码和每页数据量的状态,通过计算切片数据实现分页。…

加载jquery

加载jquery

加载 jQuery 的方法 通过 CDN 加载 推荐使用官方或公共 CDN(内容分发网络)加载 jQuery,速度快且稳定。将以下代码添加到 HTML 文件的 <head> 或 <b…