何时应该使用React的懒加载功能?
P粉976737101
P粉976737101 2023-08-24 23:11:02
0
2
505
<p>我有一个相当大的应用程序,现在的捆绑包大小大约为2MB(大约有3个块)。为了提高加载时间,我决定开始使用相对较新的React Lazy。</p> <p>这是一个懒加载的示例:</p> <pre class="brush:php;toolbar:false;">const Wizard = React.lazy(() => import('./components/wizards/Wizard'));</pre> <p>我理解这个概念的一般思路,但我仍然很难理解除了偶尔需要等待一段时间来加载块之外,还有什么缺点。</p> <p>根据我所读到的,我没有理由使用常规导入。</p> <p><strong>我的问题是:我是否应该在我的应用程序中的每个组件导入上使用懒加载?为什么?为什么不?</strong></p> <p>我很想听听你们的想法。</p>
P粉976737101
P粉976737101

全部回复(2)
P粉790819727

我还没有开始使用它。但我认为最乐观的方法是对所有在首页上需要的组件进行定期导入。其他任何不是主页的路由都应该使用懒加载。这是我想的一般思路。

P粉481035232

不,对于每个组件都不需要。它在每个布局或页面中使用才有意义。一个好的起点是路由。大多数人在网页上习惯于页面转换需要一定的加载时间。您还倾向于一次性重新渲染整个页面,所以您的用户不太可能与页面上的其他元素同时进行交互。

例如,您正在创建一个新闻聚合应用程序。您的应用程序包括两个页面,如NewsListNewsItemPage。每个页面包含几个不同的组件。在这个例子中,对于每个其他页面使用惰性加载组件是有意义的。然后它将加载它所需的组件。

应用程序还有一个HeaderFooter。它们应该以常规方式加载。因为它们在每个页面上都使用,并且异步加载没有意义。

import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
import React, { Suspense, lazy } from 'react';

import Header from './components/Header';
import Footer from './components/Footer';

const NewsList = lazy(() => import('./pages/NewsList'));
const NewsItemPage = lazy(() => import('./pages/NewsItemPage'));

const App = () => (
  <Router>
    <Header />
      <Suspense fallback={<div>Loading...</div>}>
        <Switch>
          <Route exact path="/" component={NewsList}/>
          <Route path="/news/:id" component={NewsItemPage}/>
        </Switch>
      </Suspense>
    <Footer />
  </Router>
);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板