【React】从 0 到 1 搭建你的 React18 项目

一,项目搭建
安装脚手架 CRA
使用
create-react-app生成项目npx create-react-app 自定义项目名进入根目录
cd 自定义项目名启动项目
npm run start调整项目目录结构
保留核心代码
src/index.js
src/App.js
二、使用 gitee 管理项目
在项目根目录打开终端,并初始化
git仓库(如果已经有了git仓库,无需重复该步),命令:git init添加项目内容到暂存区:
git add .提交项目内容到仓库区:
git commit -m '项目初始化'添加 remote 仓库地址:
git remote add origin [gitee 仓库地址]将项目内容推送到 gitee:
git push origin master -u
三、使用 scss 预处理器
SASS 是一种预编译的 CSS,作用类似于 Less。由于 React 中内置了处理 SASS 的配置,所以,在 CRA 创建的项目中,可以直接使用 SASS 来写样式。
安装解析 sass 的包:
npm i sass -Dsrc根目录创建全局样式文件:index.scss
四、配置路由
基础路由
安装路由:
npm i react-router-dom在
pages目录中创建两个路由测试文件夹:Login、Layout分别在创建的两个目录中创建
index.js文件,并创建一个简单的组件后导出:pages/Login/index.js
在
App组件中,导入路由组件以及两个页面组件配置
Login和Layout的路由规则App.js
在非组件环境下拿到路由信息
安装:
npm i history创建
utils/history.js文件utils/history.js
在 app.js 中使用我们新建的路由并配置 history 参数
app.js
使用案例
utils/http.js
路由懒加载
在
App组件中,导入Suspense组件在 路由
Router内部,使用Suspense组件包裹组件内容为
Suspense组件提供fallback属性,指定loading占位内容导入
lazy函数,并修改为懒加载方式导入路由组件
App.js
五、组件库 antd 使用
安装
antd组件库:npm i antd全局导入
antd组件库的样式src/index.js:
导入
Button组件进行测试在
Login页面渲染Button组件进行测试pages/Login/index.js
注意
在
src/index.js文件中导入 antd 的样式文件antd的样式文件和我们自己的全局样式文件的导入顺序
六、配置别名路径
安装 @craco/craco
CRA将所有工程化配置,都隐藏在了react-scripts包中,所以项目中看不到任何配置信息如果要修改
CRA的默认配置,有以下几种方案:通过第三方库来修改,比如,
@craco/craco(推荐)通过执行
yarn eject命令,释放react-scripts中的所有配置到项目中
安装修改 CRA 配置的包:
npm i -D @craco/craco在项目根目录中创建 craco 的配置文件:
craco.config.js,并在配置文件中配置路径别名craco.config.js
修改
package.json中的脚本命令package.json
在代码中,就可以通过
@来表示 src 目录的绝对路径重启项目,让配置生效
@别名路径提示
在项目根目录创建
jsconfig.json配置文件在配置文件中添加以下配置
vscode 会自动读取jsconfig.json 中的配置,让 vscode 知道@就是src目录
七、安装 dev-tools 调试工具
八、封装 axios 工具模块
安装
axios:npm i axios创建
utils/http.js文件utils/http.js
在
utils/index.js中,统一导出httputils/index.js
九、使用 mobx
模块化配置
安装
mobx:npm i mobx mobx-react-litestore文件夹下创建单一模块store例:store/use.Store.js
store文件下创建index.js统一导出storestore/index.js
组件中使用 mobx
例如:在Login组件中使用
十、项目本地预览
项目经过打包过后,往往需要本地预览服务端运行时的效果:
全局安装本地服务包
npm i -g serve该包提供了serve命令,用来启动本地服务在项目根目录中执行命令
serve -s ./build在 build 目录中开启服务器在浏览器中访问:
http://localhost:3000/预览项目
十一、 打包体积分析
安装分析打包体积的包:
npm i source-map-explorer在
package.json中的scripts标签中,添加分析打包体积的命令package.json中:
对项目打包:
npm run build(如果已经打过包,可省略这一步)运行分析命令:
npm run analyze通过浏览器打开的页面,分析图表中的包体积
十二、优化 CDN 配置
通过 craco 来修改 webpack 配置,从而实现 CDN 优化craco.config.js
public/index.html
版权声明: 本文为 InfoQ 作者【海底烧烤店ai】的原创文章。
原文链接:【http://xie.infoq.cn/article/db359267c43244aa6e9d2fc1b】。文章转载请联系作者。










评论