react lazyLoad加載使用詳解
1.lazyLoad用處
默認(rèn)例如首頁(yè),如果有好十幾個(gè)甚至百個(gè)路由,react是會(huì)默認(rèn)一下全部把路由組件一下全部加載的,極可能造成頁(yè)面卡頓。react lazyLoad就可以解決這個(gè)問(wèn)題。
2.使用
我用的react版本是18,注意在主index.js中<React.StrictMode>要去掉,不然會(huì)出現(xiàn)路由變化了,控制臺(tái)也不報(bào)錯(cuò)但是頁(yè)面不跳轉(zhuǎn)的問(wèn)題.
2.1 react-router-dom5版本寫(xiě)法
import React, { Component,lazy,Suspense} from 'react' import {NavLink,Route} from 'react-router-dom' import Loading from './Loading' const Home = lazy(()=> import('./Home') ) const About = lazy(()=> import('./About')) export default class Demo extends Component { render() { return ( <div> <div className="row"> <div className="col-xs-offset-2 col-xs-8"> <div className="page-header"><h2>React Router Demo</h2></div> </div> </div> <div className="row"> <div className="col-xs-2 col-xs-offset-2"> <div className="list-group"> {/* 在React中靠路由鏈接實(shí)現(xiàn)切換組件--編寫(xiě)路由鏈接 */} <NavLink className="list-group-item" to="/about">About</NavLink> <NavLink className="list-group-item" to="/home">Home</NavLink> </div> </div> <div className="col-xs-6"> <div className="panel"> <div className="panel-body"> {/* fallback可以寫(xiě)一個(gè)組件,但是這個(gè)組件就不能懶加載了,本來(lái)的作用就是如果網(wǎng)絡(luò)等原因?qū)е马?yè)面空白的話就用組件來(lái)替代 */} <Suspense fallback={<Loading/>}> {/* 注冊(cè)路由 */} <Route path="/about" component={About}/> <Route path="/home" component={Home}/> </Suspense> </div> </div> </div> </div> </div> ) } }
2.2 react-router-dom6版本寫(xiě)法
主要是引入和Suspense的改變
import React, { Component, lazy, Suspense } from "react"; import { NavLink, Route,Routes } from "react-router-dom"; import Loading from "./Loading"; const Home = lazy(() => import("./Home")); const About = lazy(() => import("./About")); export default class Demo extends Component { render() { return ( <div> <div className="row"> <div className="col-xs-offset-2 col-xs-8"> <div className="page-header"> <h2>React Router Demo</h2> </div> </div> </div> <div className="row"> <div className="col-xs-2 col-xs-offset-2"> <div className="list-group"> {/* 在React中靠路由鏈接實(shí)現(xiàn)切換組件--編寫(xiě)路由鏈接 */} <NavLink className="list-group-item" to="/about"> About </NavLink> <NavLink className="list-group-item" to="/home"> Home </NavLink> </div> </div> <div className="col-xs-6"> <div className="panel"> <div className="panel-body"> {/* fallback可以寫(xiě)一個(gè)組件,但是這個(gè)組件就不能懶加載了,本來(lái)的作用就是如果網(wǎng)絡(luò)等原因?qū)е马?yè)面空白的話就用組件來(lái)替代 */} <Suspense fallback={<Loading />}> {/* 注冊(cè)路由 */} <Routes> <Route path="/about" element={<About/>} /> <Route path="/home" element={<Home/>} /> </Routes> </Suspense> </div> </div> </div> </div> </div> ); } }
需要注意的是,lazyLoad只有在第一次請(qǐng)求那個(gè)路由組件才會(huì)去調(diào)用資源請(qǐng)求,第二次就不會(huì)再去調(diào)用的了,有緩存。
到此這篇關(guān)于react lazyLoad加載使用詳解的文章就介紹到這了,更多相關(guān)react lazyLoad內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
React?Native?加載H5頁(yè)面的實(shí)現(xiàn)方法
這篇文章主要介紹了React?Native?加載H5頁(yè)面的實(shí)現(xiàn)方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04React Native中導(dǎo)航組件react-navigation跨tab路由處理詳解
這篇文章主要給大家介紹了關(guān)于React Native中導(dǎo)航組件react-navigation跨tab路由處理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10react使用節(jié)流函數(shù)防止重復(fù)點(diǎn)擊問(wèn)題
這篇文章主要介紹了react使用節(jié)流函數(shù)防止重復(fù)點(diǎn)擊問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06React中super()和super(props)的區(qū)別小結(jié)
本文主要介紹了React中super()和super(props)的區(qū)別小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03react如何使用useRef模仿抖音標(biāo)題里面添加標(biāo)簽內(nèi)容
本文介紹了如何模仿抖音發(fā)布頁(yè)面,使用div元素作為輸入框,并利用CSS樣式和JavaScript動(dòng)態(tài)操作DOM,實(shí)現(xiàn)類似于input輸入框的功能,感興趣的朋友跟隨小編一起看看吧2024-10-10antd4里table滾動(dòng)的實(shí)現(xiàn)
本文主要介紹了antd4里table滾動(dòng)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03使用react-router4.0實(shí)現(xiàn)重定向和404功能的方法
本篇文章主要介紹了使用react-router4.0實(shí)現(xiàn)重定向和404功能的方法,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08react性能優(yōu)化達(dá)到最大化的方法 immutable.js使用的必要性
這篇文章主要為大家詳細(xì)介紹了react性能優(yōu)化達(dá)到最大化的方法,一步一步優(yōu)化react性能的過(guò)程,告訴大家使用immutable.js的必要性,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03