React 项目优化

Unsafe 生命周期

在这里插入图片描述

强迫症,就没办法了

componentWillMount → UNSAFE_componentWillMount
componentWillReceiveProps → UNSAFE_componentWillReceiveProps
componentWillUpdate → UNSAFE_componentWillUpdate

cd your_project
npx react-codemod rename-unsafe-lifecycles

 frontend // 第一个命令时
 javascript with flow
antd UI组件 按需引用

官网地址: 链接

React 路由异步加载

插件

yarn add react-loadable -S

loadableComponent.js

import React from 'react'
import Loadable from 'react-loadable'

const Loading = (props) => {
  const { error } = props
  if (error) {
    return (
      <div>
        <p>{error.stack ? error.stack : ''}</p>
      </div>
    )
  }
  return <div />
}


const loadableComponent = (loader, render) => {
  const config = {
    loader,
    loading: Loading,
    delay: 1000,
  }
  if (render) {
    config.render = render
  }
  return Loadable(config)
}

export default loadableComponent

路由模块.jsx

import lc from '../../utils/loadableComponent'

const Home = ()=>import("../home/home")

<Switch>
   <Route path="/home" component={lc(Home)} />
	//.....
</Switch>

npm run build js文件夹,每个路由使用不同的chunk

SourceMap

在使用react-create-app搭建的项目,在我们编译打包时会产生很多.map文件,导致编译后的项目非常大,如下配置可以让打包后的文件不包含.map文件

在node_modules文件夹中找到react-scripts包  
路径/node_modules/react-scripts/config/webpack.config.js
找到const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== ‘false’;将这一行代码注释
在下面添加一行 const shouldUseSourceMap = false;

npm run build

gzip

nginx

location ~ .*\.(jpg|gif|png|bmp)$ {
       gzip on;
       gzip_http_version 1.1;
       gzip_comp_level 3;
       gzip_types text/plain application/json application/x-javascript application/css application/xml application/xml+rss text/javascript application/x-httpd-php image/jpeg image/gif image/png image/x-ms-bmp;
      }

在这里插入图片描述
如果没有这栏,可以在当前栏右击 Response Header 选项中找到

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值