【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 -D
src根目录
创建全局样式文件: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
中,统一导出http
utils/index.js
九、使用 mobx
模块化配置
安装
mobx
:npm i mobx mobx-react-lite
store
文件夹下创建单一模块store
例:store/use.Store.js
store
文件下创建index.js
统一导出store
store/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】。文章转载请联系作者。
评论