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 'react'; import './App.css'; //使用React.lazy导入OtherComponent组件 const OtherComponent = React.lazy(() => import('./OtherComponent')); function App() { return ( <div className="App"> <OtherComponent/> </div> ); } export default App;
但是這樣頁面會報錯。這個報錯提示我們,在React使用了lazy之後,會存在一個載入中的空檔期,React不知道在這個空檔期中該顯示什麼內容,所以需要我們指定。接下來就要使用到Suspense載入指示器。
import React, { Suspense, Component } from 'react'; import './App.css'; //使用React.lazy导入OtherComponent组件 const OtherComponent = React.lazy(() => import('./OtherComponent')); 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中文網其他相關文章!