React和Vue實(shí)現(xiàn)路由懶加載的示例代碼
懶加載:也叫延遲加載,即在需要的時(shí)候進(jìn)行加載,隨用隨載。
懶加載的意義:像vue這種單頁面應(yīng)用,如果沒有應(yīng)用懶加載,運(yùn)用webpack打包后的文件將會(huì)異常的大,造成進(jìn)入首頁時(shí),需要加載的內(nèi)容過多,時(shí)間過長(zhǎng),會(huì)出現(xiàn)長(zhǎng)時(shí)間的白屏,即使做了loading也是不利于用戶體驗(yàn),而運(yùn)用懶加載則可以將頁面進(jìn)行劃分,需要的時(shí)候加載頁面,可以有效的分擔(dān)首頁所承擔(dān)的加載壓力,減少首頁加載用時(shí),減少資源的浪費(fèi)
簡(jiǎn)單的說就是:進(jìn)入首頁不用一次加載過多資源造成用時(shí)過長(zhǎng)
在React和Vue中,實(shí)現(xiàn)路由懶加載(Lazy Loading)的方法和代碼示例如下:
React
在React中,你可以使用React.lazy和Suspense組件來實(shí)現(xiàn)路由懶加載。下面是一個(gè)簡(jiǎn)單的示例:
import React, { Suspense } from 'react'; import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; const Home = React.lazy(() => import('./routes/Home')); const About = React.lazy(() => import('./routes/About')); function App() { return ( <Router> <Suspense fallback={<div>Loading...</div>}> <Switch> <Route exact path="/" component={Home} /> <Route path="/about" component={About} /> </Switch> </Suspense> </Router> ); }
在這個(gè)示例中,我們使用React.lazy來動(dòng)態(tài)導(dǎo)入Home和About組件。當(dāng)用戶訪問相應(yīng)的路由時(shí),對(duì)應(yīng)的組件會(huì)按需加載。Suspense組件用于在組件加載過程中顯示加載提示。
Vue
在Vue中,你可以使用異步組件來實(shí)現(xiàn)路由懶加載。下面是一個(gè)簡(jiǎn)單的示例:
import Vue from 'vue'; import Router from 'vue-router'; import Home from './routes/Home'; import About from './routes/About'; Vue.use(Router); const router = new Router({ routes: [ { path: '/', component: Home }, { path: '/about', component: () => import('./routes/About') } ] });
在這個(gè)示例中,我們使用動(dòng)態(tài)導(dǎo)入來按需加載組件。在路由定義中,我們將組件設(shè)置為一個(gè)返回Promise的函數(shù),該P(yáng)romise解析為對(duì)應(yīng)的組件實(shí)例。這樣,當(dāng)用戶訪問相應(yīng)的路由時(shí),對(duì)應(yīng)的組件才會(huì)被加載。Vue Router會(huì)自動(dòng)處理懶加載邏輯。
到此這篇關(guān)于React和Vue實(shí)現(xiàn)路由懶加載的示例代碼的文章就介紹到這了,更多相關(guān)React和Vue路由懶加載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue3組合式API之getCurrentInstance詳解
我們可以通過?getCurrentInstance這個(gè)函數(shù)來返回當(dāng)前組件的實(shí)例對(duì)象,也就是當(dāng)前vue這個(gè)實(shí)例對(duì)象,下面這篇文章主要給大家介紹了關(guān)于Vue3組合式API之getCurrentInstance的相關(guān)資料,需要的朋友可以參考下2022-09-09Vue引入高德地圖并觸發(fā)實(shí)現(xiàn)多個(gè)標(biāo)點(diǎn)的示例詳解
這篇文章主要介紹了Vue引入高德地圖并觸發(fā)實(shí)現(xiàn)多個(gè)標(biāo)點(diǎn),主要是在public下的index.html中引入地圖,引入組件設(shè)置寬高100%,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05vue項(xiàng)目使用electron-builder庫打包成桌面程序的過程
這篇文章主要介紹了vue項(xiàng)目使用electron-builder庫打包成桌面程序的過程,本文給大家介紹如何使用electron-builder這個(gè)庫結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),感興趣的朋友一起看看吧2024-02-02vue下history模式刷新后404錯(cuò)誤解決方法
這篇文章主要介紹了vue下history模式刷新后404錯(cuò)誤解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08Vue AST的轉(zhuǎn)換實(shí)現(xiàn)方法講解
本節(jié),我們將討論關(guān)于AST的轉(zhuǎn)換。所謂AST的轉(zhuǎn)換,指的是對(duì)AST進(jìn)行一系列操作,將其轉(zhuǎn)換為新的AST的過程。新的AST可以是原語言或原DSL的描述,也可以是其他語言或其他DSL的描述。例如,我們可以對(duì)模板AST進(jìn)行操作,將其轉(zhuǎn)換為JavaScriptAST2023-01-01vue使用動(dòng)態(tài)添加路由(router.addRoutes)加載權(quán)限側(cè)邊欄的方式
這篇文章主要介紹了vue使用動(dòng)態(tài)添加路由(router.addRoutes)加載權(quán)限側(cè)邊欄的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06Vue 數(shù)值改變頁面沒有刷新的問題解決(數(shù)據(jù)改變視圖不更新的問題)
這篇文章主要介紹了Vue 數(shù)值改變頁面沒有刷新的問題解決(數(shù)據(jù)改變視圖不更新的問題),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09如何使用VuePress搭建一個(gè)類型element ui文檔
這篇文章主要介紹了如何使用VuePress搭建一個(gè)類型element ui文檔,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02vue-treeselect及el-tree點(diǎn)擊節(jié)點(diǎn)獲取上級(jí)節(jié)點(diǎn)的數(shù)據(jù)方式
這篇文章主要介紹了vue-treeselect及el-tree點(diǎn)擊節(jié)點(diǎn)獲取上級(jí)節(jié)點(diǎn)的數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07Vue 配合eiement動(dòng)態(tài)路由,權(quán)限驗(yàn)證的方法
今天小編就為大家分享一篇Vue 配合eiement動(dòng)態(tài)路由,權(quán)限驗(yàn)證的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09