React 第十二章 UmiJs

本文介绍了Umi.js,一个由蚂蚁集团推出的前端框架,其特点包括插件化设计、开箱即用的功能、约定式路由、可扩展性和与AntDesign等工具的高整合度。文章详细阐述了其生命周期插件、配置与运行时的区别,以及如何利用这些特性提升开发效率和应用扩展性。
摘要由CSDN通过智能技术生成

Umi.js 介绍

Umi 是由蚂蚁集团推出的可扩展的企业级前端应用框架。Umi 以路由为基础,同时支持配置式路由和约定式路由,保证路由的功能完备,并以此进行功能扩展。然后配以生命周期完善的插件体系,覆盖从源码到构建产物的每个生命周期,支持各种功能扩展和业务需求。

image-20221105145301148

Umi.js 特点

  1. 插件化:UmiJS 的整个生命周期都是插件化的,这意味着框架内部的功能大多由插件实现。这种设计使得框架非常灵活,开发者可以通过引入不同的插件来扩展或修改框架的行为。例如,按需加载、一键切换 Preact、一键兼容 IE9 等功能,都是由插件实现的。
    开箱即用:UmiJS 内置了路由、构建、部署等功能,开发者仅需一个依赖即可开始开发。这大大简化了开发流程,无需额外安装 React、Preact、Webpack、React-Router、Babel、Jest 等工具或库。
  2. 约定式路由:UmiJS 采用了约定式路由,这意味着开发者无需再维护一份冗余的路由配置。框架会根据文件目录结构自动生成路由配置,并支持权限、动态路由、嵌套路由等功能。这种设计不仅简化了路由管理,还提高了开发效率。
  3. 可扩展性:UmiJS 支持插件和插件集,这使得框架能够支持各种不同的功能需求。无论是添加新的功能、修改现有功能,还是优化性能,都可以通过引入或开发插件来实现。
  4. 业务整合:由于 UmiJS 是阿里系的前端框架,它对自家的 Ant Design、ahooks、dva 等工具或库的整合度非常高。这使得开发者在使用这些工具或库时,能够获得更好的兼容性和性能。

约定式路由

约定式路由并不是 Umi 独有的东西,像基于 VueNuxt.js,基于 ReactNext.js 框架,都提供了约定式路由的方式。

而早期在 Umi 2.x 时代,团队借鉴了这种方式,加入了约定式路由的功能,并沿用至今。

所谓约定式路由,简单来讲,就是根据你的页面级组件自动生成路由的配置,而不再需要我们自己去书写路由配置。

有关约定式路由的说明,在 v4 的文档中介绍相对比较简单:https://umijs.org/docs/guides/directory-structure#pagesv4 更多的是介绍配置式路由。

如果想要了解约定式路由,这里可以参阅 v2v3 的文档:

  • v2 文档:https://v2.umijs.org/zh/guide/router.html

  • v3 文档:https://v3.umijs.org/zh-CN/docs/convention-routing

注意
不同版本之间会有略微的差异,例如动态路由在 v2v3 中的使用方式就有所区别,当发现差异时,应该查询自己对应版本的文档说明

插件机制

Umi 中,采用了插件的机制,所涵盖的其他技术都以插件的形式引入。

要开启某个插件,我们可以在 .umirc.js 中进行配置,例如:

export default defineConfig({
  antd: {},
  access: {},
  model: {},
  initialState: {},
  request: {},
  layout: {},
  dva: {},
  npmClient: 'npm',
});

另外,如果*.umiirc.js* 文件配置的内容很多的话,可以单独提取出来,放入到 config/config.js 里面(二选一,.umirc.js 优先)

构建时配置和运行时配置

v2 版本开始,Umi 就一直包含两个配置文件,到了 v4 也一直保持这一特点。

构建时配置

Umi 中,约定项目根目录下的 .umirc.js/ts 为构建时配置,当我们启动 Umi 项目时,Umi 会对整个项目进行一次构建,在 src 目录下生成一个 .umi 的临时目录,构建时配置则决定了所生成的 .umi 目录的样子。

.umi 目录的结构如下:

+ .umi
  + core     # 内部插件生成
  + pluginA  # 外部插件生成
  + presetB  # 外部插件生成
  + umi.ts   # 入口文件

因此,在构建时配置中,一个很重要的用途就是开启插件。

有关 .umirc.js/ts 具体的配置项,请参阅:https://umijs.org/docs/api/config

运行时配置

运行时配置和配置的区别是他跑在浏览器端,基于此,我们可以在这里写函数、tsximport 浏览器端依赖等等,注意不要引入 node 依赖。

umi 中,约定 src 目录下的 app.js/ts/jsx/tsx 为运行时的配置文件。

有关运行时配置项目,可以参阅:https://umijs.org/docs/api/runtime-config

总结

UmiJS 是一个强大且灵活的企业级前端应用框架,基于 React 和插件化的思想构建。它提供了丰富的功能和插件生态系统,使得开发者能够高效地构建出稳定、可扩展的 Web 应用。

无论是初创公司还是大型企业,都可以通过 UmiJS 来提高开发效率、降低维护成本,并构建出高质量、可扩展的 Web 应用。

  • 16
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ts-umijs-react 是一个开源项目,它结合了 TypeScript、UmiJSReact 的强大功能。其中,TypeScript 是一种由 Microsoft 开发的静态类型检查工具,它可以帮助我们在开发过程中更早地发现潜在的错误,提高代码的可维护性和可读性。UmiJS 是一个基于 React 的企业级前端框架,它提供了一套完整的生态系统,包含了路由、构建工具、插件等功能,使得开发者可以更轻松地构建大型应用程序。而 React 是一个流行的 JavaScript 库,用于构建用户界面,它提供了高效的组件化开发模式,使得我们可以将整个应用程序分成小块的可复用组件,提高代码的可维护性和可重用性。 ts-umijs-react 项目的优势在于结合了这三者的特点,可以使我们的开发过程更加高效和可靠。首先,使用 TypeScript 可以帮助我们减少许多类型相关的错误,提供更好的代码提示和补全,增加代码的可读性和可维护性。 其次,使用 UmiJS 可以帮助我们快速搭建起一个完整的企业级前端应用程序,它提供了一套约定优于配置的开发规范,使得我们可以更加专注于业务逻辑的实现,而不需要花费过多时间去处理一些基础设施的搭建。 最后,使用 React 可以让我们更加方便地构建用户交互界面,提供高效的渲染和更新机制,使得应用程序可以在不同的平台上都有良好的性能和用户体验。 总之,ts-umijs-react 开源项目的结合了 TypeScript、UmiJSReact 的优点,使得我们能够更加高效地开发前端应用程序,提高代码的质量和开发的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值