针对首屏加载不太需要的一些资源,我们可以通过懒加载的方式去实现,通过 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 = logo
document.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 // 需要登录
}
},