首页 > 编程知识 正文

前端路由懒加载原理,前端路由的几模式

时间:2023-05-05 06:49:46 阅读:37199 作者:1970

基本原理目录结构

srcutilasyncRouter.jsa.jsb.js组件a

常数a=() )返回) ) diva/div ); }导出默认a组件b

常数b=() )返回) ) divB/div ); }导出默认b async router.js

将module.default和module组合为统一的数组。 constm=module=module.default|| module constesmodule=(module )=module.map(m ) m ) constasyncrouter=async(comp ) 异步请求constcompdata=await promise.all (comp () ) /修复数据结构constCMP=esmodule(compdata ) console.log (CMP ) reted b ) ) ) )作为基本路由助手函数,导出默认同步路由器更加完善

将import { component } from ' react '//module.default和module组成统一的数组。 constm=module=module.default|| moduleconstesmodule=(module ) ) /分钟是否为数组,根据if(object.prototype.tostring ) 处理分钟{returnmodule.map(m ) returnm ) module } function asyncrouter (comp )//返回组件类的根包含returnclassasyncrouteextendscomponent { constructor ({ super ) ) this.state={ CMP 3360 null } load data==awaitpromise.all([comp(] ) /修复数据结构constCMP=esmodule(compdata ) this.setstate ) /更新组件CMP { this.load data render ) ) const ) CMP )=this.statereturnCMPCMP///返回组件} } exportdefaultasyncrouterinnnitiaty

导入react from ' react '; 导入react DOM from ' react-DOM '; import './index.css '; 导入app from './app '; importreportwebvitalsfrom './reportwebvitals '; 导入{浏览器路由器} from ' react-router-DOM '; react DOM.render (react.strictmodebrowserrouterapp//browser router/react.strict mode,document.getelementbyid (' ) //ifyouwanttostartmeasuringperformanceinyourapp,passa function//tologresults (for example :报告webvitals (console

导入logo from './logo.SVG '; import './App.css '; 导入{ route,Switch, Link} from 'react-router-dom'//这也是可以摆脱其他管理的const a=asyncRouter ()=import (./a ) ) ) const b=async rrrrouter link/Lili link to='/b ' b/link/Li/ulswitchroutepath='/a ' component={ a }/route path='/b ' component={总结:异步加载路由主要使用了import实时载入以及promise的控制,最后利用高阶函数里面的闭包写法返回类来输出成组件喂给路由的component属性。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。