针对首屏加载不太需要的一些资源,我们可以通过懒加载的方式去实现,通过 webpack 提供的 import() 语法 动态导入 功能进行代码分离,通过按需加载,大大提升网页加载速度。
原理:
通过jsonp的方式,动态生成script标签执行后端传入的js代码。
例:
import './main.css';import './sass.scss'import logo from '../public/avatar.png'import '@/fonts/iconfont.css'const a = 'Hello ITEM'console.log(a)const img = new Image()img.src = logodocument.getElementById('imgBox').appendChild(img)// 按需加载img.addEventListener('click', () => {import('./desc').then(({ default: element }) => {console.log(element)document.body.appendChild(element)})})
export default function App () {return (<div>hello react 111<Hello /><button onClick={() => import('lodash')}>加载lodash</button></div>)}
路由中
{name: 'Verify',path: '/verify',component: lazy(() => import('@/pages/verify/index')),exact: true,meta: {title: '实名认证',requireAuth: true // 需要登录}},
