Quand devriez-vous utiliser la fonctionnalité de chargement différé de React ?
P粉976737101
P粉976737101 2023-08-24 23:11:02
0
2
333
<p>J'ai une application assez volumineuse et la taille du bundle est maintenant d'environ 2 Mo (environ 3 morceaux). Pour améliorer les temps de chargement, j'ai décidé de commencer à utiliser le relativement nouveau React Lazy. </p> <p>Voici un exemple de chargement différé : </p> <pre class="brush:php;toolbar:false;">const Wizard = React.lazy(() => import('./components/wizards/Wizard'));</pre> <p>Je comprends l'idée générale du concept, mais j'ai encore du mal à comprendre quel est l'inconvénient, à part devoir parfois attendre un peu pour que des morceaux se chargent. </p> <p>D'après ce que j'ai lu, je n'ai aucune raison d'utiliser des importations régulières. </p> <p><strong>Ma question est la suivante : dois-je utiliser le chargement différé pour chaque importation de composant dans mon application ? Pourquoi? pourquoi pas? </strong></p> <p>J'aimerais connaître votre avis. </p>
P粉976737101
P粉976737101

répondre à tous(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>
);
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!