徐锦洪 发表于 2024-8-30 02:31:27

通过Umijs从0到1搭建一个React项目

有一阵时间没写react了,今天通过umi搭建一个demo项目复习一下react;umi是一个可扩展的企业级前端应用框架,在react市场中还是比力火的一个框架。
Umi官方文档:Umi 介绍 (umijs.org)
一、构建项目。

1、安装包管理工具。

官方保举利用pnpm,我也一直在利用pnpm,如果没有请实行以下命令自行安装。
npm install -g pnpm 2、构建项目。

根据官方文档的说明,我们在已经创建好的项目文件下打开终端,输入以下命令创建umi项目
pnpm dlx create-umi@latest 根据提示一步一步选择想要的模板范例即可,我选择了Simple App,pnpm,以及taobao镜像源。
https://i-blog.csdnimg.cn/direct/75fb3d1588e14e8a88d4e5ba0e43bb95.png

3、启动项目

上面实行完成后,我们必要启动项目,直接输入以下命令即可启动项目
pnpm start https://i-blog.csdnimg.cn/direct/ac8f5f469ce947729fb62d2851fa8226.png
点击链接即可看到我们以及搭建好的项目了。
https://i-blog.csdnimg.cn/direct/bfbf555e924946178accc1fdf9272429.png
二、引入依赖插件

umi的项目创建好就会自动下载好node_modules依赖包,但是像UI库这类的还是没有的,我们还是必要去手动安装下载。
1、UI组件库。

我以antd为例进行下载,实行以下命令。
pnpm install antd 安装完成后直接在页面里导入antd组件即可,非常简单,你也可以利用umi插件里的antd
https://i-blog.csdnimg.cn/direct/cfa5a4e4f8534e82b2c8513d7d577c9f.png
https://i-blog.csdnimg.cn/direct/bd3557efc8004b93aa6df2faef60d7ab.png
2、网络哀求

你可以直接下载哀求库,比方axios;但这里可以利用umi官方的插件,在插件里也有哀求插件,实行以下命令下载插件。
详细文档:哀求 (umijs.org)
pnpm add -D @umijs/plugins 引入插件,打开.umirc.ts或者config.ts(可以先看第三部门),将对应的插件引入,我这里直接引入了三个插件,antd,request,model
//config.ts

import { defineConfig } from "umi";
import routers from "./routers";
const { UMI_ENV } = process.env; // 打包环境变量
export default defineConfig({
    routes: routers,
    npmClient: 'pnpm',
    publicPath: "/",
    plugins:['@umijs/plugins/dist/antd', '@umijs/plugins/dist/request','@umijs/plugins/dist/model'],
    antd: {},
    model: {},
    request: {},
});
console.log(UMI_ENV) 利用
import {request} from '@umijs'

let url = '请求地址'
let options ={
    method: 'get',
    params: {},
    url: url
}
export const requestFun = async () =>{
    return await request(url,options)
} 3、状态管理(数据共享)

一样平常来说在react中经常利用redux进行状态管理,但是在umi中保举一种数据流model模块化管理。
详细文档:数据流 (umijs.org)
在plugins中导入'@umijs/plugins/dist/model'插件,在项目中创建一个models目录,在目录下创建组件对应的一个文件,例子如下
https://i-blog.csdnimg.cn/direct/c089dabf90cd415eb28a3715c70b5897.png
在对应的文件下用useModel引入model的名字,就可以访问model里的数据和方法了。
https://i-blog.csdnimg.cn/direct/fa4c44024c964066bd09502a54e91b77.png
三、多情况配置。

在开发过程中,我们必要多种情况,开发情况、测试情况、以及生产情况等,那么则必要我们进行配置不同的情况。
首先我们在目录中找到.umirc.ts文件,这个文件是umi的情况配置文件,我们盼望可以进行多情况管理,则这个文件就不必要了,我们必要在根目录下创建config目录创建config配置文件,由于config配置文件没有.umirc.ts优先级高,则必要将.umirc.ts删掉。
https://i-blog.csdnimg.cn/direct/0ee37d65e0a24ef194ddd7f6145b5b6f.png
1、创建config目录。

https://i-blog.csdnimg.cn/direct/f4689a1e461e4153b3a1dd6b6c0c49d6.png
在目录下创建config.ts、config.dev.ts、config.pro.ts、routers.ts文件
//config.ts

import { defineConfig } from "umi";
import routers from "./routers";
const { UMI_ENV } = process.env; // 打包环境变量
export default defineConfig({
    routes: routers,
    npmClient: 'pnpm',
    publicPath: "/",
});
console.log(UMI_ENV) //config.dev.ts

import { defineConfig } from "umi";
const { UMI_ENV } = process.env; // 打包环境变量
export default defineConfig({
    define:{
      UMI_ENV:UMI_ENV,
      BASE_SERVER:'开发环境'
    }
});
//config.pro.ts

import { defineConfig } from "umi";
const { UMI_ENV } = process.env; // 打包环境变量
export default defineConfig({
    define:{
      UMI_ENV:UMI_ENV,
      BASE_SERVER:'生产环境'
    }
}); //routers.ts

const routes=[
    { path: "/", component: "index" },
    { path: "/docs", component: "docs" },
]
export default routes 2、编写实行脚本

在编写脚本之前,我们还必要下载cross-env情况变量管理工具
pnpm install cross-env -D 然后在package.json文件中编写实行脚本:
四、github所在

https://github.com/banyan666/Demo-react
 



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 通过Umijs从0到1搭建一个React项目