首頁 >web前端 >前端問答 >什麼是react懶加載

什麼是react懶加載

藏色散人
藏色散人原創
2022-12-30 10:49:452560瀏覽

react懶加載是指不會預先加載,而是需要使用某段程式碼,某個組件或某張圖片時才加載;之所以需要懶加載,是因為在首屏同時加載過多的內容,會導致卡頓不流暢回應速度慢、使用者等待時間過長等問題,對此可以使用懶加載機制來進行最佳化。

什麼是react懶加載

本教學操作環境:Windows10系統、react18.0.0版、Dell G3電腦。

什麼是react懶載入?

React懶載入

一、懶載入是什麼?為什麼需要懶加載?

懶加載:不會預先加載,而是需要使用某段程式碼,某個元件或某張圖片時,才載入他們(延遲載入)

#原因:頁面多,內容豐富,頁長,圖片多。在首屏同時載入過多的內容,會導致卡頓不流暢反應速度慢、使用者等待時間過長等問題。對此我們常用懶加載機制來進行最佳化。 

二、使用懶載入

使用React.lazy載入

//OtherComponent.js 文件内容
 
import React from 'react'
const OtherComponent = ()=>{
  return (
    <div>
      我已加载
    </div>
  )
}
export default OtherComponent
 
// App.js 文件内容
import React from &#39;react&#39;;
import &#39;./App.css&#39;;
 
 
//使用React.lazy导入OtherComponent组件
const OtherComponent = React.lazy(() => import(&#39;./OtherComponent&#39;));
 
 
function App() {
  return (
    <div className="App">
      <OtherComponent/>
    </div>
  );
}
export default App;

但是這樣頁面會報錯。這個報錯提示我們,在React使用了lazy之後,會存在一個載入中的空檔期,React不知道在這個空檔期中該顯示什麼內容,所以需要我們指定。接下來就要使用到Suspense載入指示器。

import React, { Suspense, Component } from &#39;react&#39;;
import &#39;./App.css&#39;;
 
//使用React.lazy导入OtherComponent组件
const OtherComponent = React.lazy(() => import(&#39;./OtherComponent&#39;));
 
export default class App extends Component {
  state = {
    visible: false
  }
  render() {
    return (
      <div className="App">
        <button onClick={() => {
          this.setState({ visible: true })
        }}>
       
        </button>
           加载OtherComponent组件
        <Suspense fallback={<div>Loading...</div>}>
          {
            this.state.visible
              ?
              <OtherComponent />
              :
              null
          }
        </Suspense>
      </div>
    )
  }
}

推薦學習:《react影片教學

以上是什麼是react懶加載的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn