Umi3笔记

这篇具有很好参考价值的文章主要介绍了Umi3笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

UMI文档

Umi 以路由为基础的,同时支持配置式路由和约定式路由,保证路由的功能完备,并以此进行功能扩展(连锁反应)。然后配以生命周期完善的插件体系,覆盖从源码到构建产物的每个生命周期,支持各种功能扩展和业务需求。

UMI 的主要用途包括:

  1. 路由管理:UMI 提供了强大的路由功能,可以通过配置文件定义路由规则,支持动态路由、嵌套路由、权限控制等。
  2. 状态管理:UMI 集成了 dva 数据流方案,可以帮助开发者更好地组织和管理应用的状态,并提供了一套便捷的数据流操作方式。
  3. 插件扩展:UMI 支持通过插件机制进行功能扩展,可以使用丰富的插件来增强开发体验和功能特性,例如国际化、样式处理、代理转发等。
  4. 构建工具:UMI 集成了 webpack 和 babel,提供了开箱即用的构建工具,支持代码打包、优化、压缩等功能。
  5. 脚手架:UMI 提供了一套完整的项目脚手架,可以快速初始化项目结构,并提供了丰富的模板和示例,帮助开发者快速上手和开发。

总的来说,UMI 提供了一种高效、便捷的前端开发模式,帮助开发者在复杂的应用开发中提高效率,同时具备良好的可维护性和可扩展性。

Umi初始化

初始化umi项目框架结构等。


 - mkdir myapp && cd myapp
 - npm create @umijs/umi-app
 - npm install
 - npm start:启动项目
 - npm run build:打包项目到dist

目录结构

配置复杂时用config/config.js,简单时用自带的 .umirc.js。
umi默认目录结构


├── dist/                          // 默认的打包build 输出目录:npm run build
├── mock/                          // mock 文件所在目录,基于 express
├── public/                         // 变通的数据资源目录和一些无需打包的资源
├── config/
    ├── config.js                  // umi 配置,同 .umirc.js,二选一
└── src/                           // 源码目录,可选
    ├── layouts/index.js           // 全局布局
    ├── models                       // 数据流,自动识别models     
    ├── components              // 全局通用组件 
    ├── wrappers                  // 权限管理
    ├── pages/                     // 页面目录,里面的文件即路由
        ├── .umi/                  // dev 临时目录,需添加到 .gitignore
        ├── .umi-production/       // build 临时目录,会自动删除
        ├── document.ejs           // HTML 模板
        ├── 404.js                 // 404 页面
        ├── page1.js               // 页面 1,任意命名,导出 react 组件
        ├── index2.tsx            // 页面 2,任意命名,导出 react 组件    
        ├── page1.test.js          // 用例文件,umi test 会匹配所有 .test.js 和 .e2e.js 结尾的文件
        └── page2.js               // 页面 2,任意命名
    ├── global.css                 // 约定的全局样式文件,自动引入,也可以用 global.less
    ├── global.js                  // 可以在这里加入 polyfill
    ├── app.js                     // 动态:运行时配置文件
├── .umirc.js                      // 静态:umi 配置,同 config/config.js,二选一
├── .env                           // 环境变量
└── package.json

配置文件解析

Umi-—前端应用框架(Umi基础)

mock 存储 mock 文件,此目录下所有 js 和 ts 文件会被解析为 mock 文件。

node_modules 依赖包目录。

.editorconfig让使用不同编辑器的开发者在共同开发一个项目时“无痛”地遵循编码规范(编码风格),就可以使用EditorConfig插件,会在项目根目录寻找.editorconfig文件并使用其中定义的编码风格。

.gitignore 是一个隐藏文件,就跟这个文件的字面意思一样,它指明了在用 git上传文件的时候需要忽略哪些文件。

.prettierrc在vscode使用右键格式化的时候,会自动帮我们补全一些符号,但有些符号在eslint中就会报语法错误,可以通过在根目录创建.prettierrc文件来进行文件配置

.umirc.ts 配置文件,包含 umi 内置功能和插件的配置。

package-lock.json 锁定安装时的包的版本号,并且需要上传到git,以保证其他人在npm install时大家的依赖能保证一致。

package.json 包含插件和插件集,以 @umijs/preset-、@umijs/plugin-、umi-preset- 和
umi-plugin- 开头的依赖会被自动注册为插件或插件集。

tsconfig.json 如果一个目录下存在一个tsconfig.json文件,那么它意味着这个目录是TypeScript项目的根目录。
tsconfig.json文件中指定了用来编译这个项目的根文件和编译选项。

typings.d.ts 用 ts 写的模块在发布的时候仍然是用 js 发布,这就导致一个问题:ts 那么多类型数据都没了,所以需要一个
d.ts 文件来标记某个 js 库里面文章来源地址https://www.toymoban.com/news/detail-487771.html

到了这里,关于Umi3笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ant design pro + umi4的动态菜单与动态路由

    困扰我好多天的自定义菜单及路由终于完成了,首先虽然看似为一个功能,但在umi4中是两项配置。 先说说我浪费了大量时间使用的处理方式:因为曾经的项目是umi3的,所以我就想原样搬过来,结果发现,布局页BasicLayout的子children不见了!     如果这个子路由能正常显示,

    2024年02月11日
    浏览(33)
  • react--umi, 根据权限展示菜单,完成页面权限分配,以及路由鉴权

           umi框架,prolayout布局,access设置菜单权限,initialState全局初始化数据,配合使用,根据后端返回的权限信息,完成菜单的不同的权限的不同展示。     1. umi 配合 patlayout 布局, 实现根据配置的路由展示菜单栏     2. umi 的 access 插件,设置不同权限的菜单展示    

    2024年02月06日
    浏览(78)
  • 【Python使用】嘿马头条完整开发md笔记第1篇:课程简介,ToutiaoWeb虚拟机使用说明【附代码文档】

    嘿马头条项目从到完整开发笔记总结完整教程(附代码资料)主要内容讲述:课程简介,ToutiaoWeb虚拟机使用说明,Pycharm远程开发,产品与开发,数据库1 产品介绍,2 原型图与UI图,3 技术架构,4 开发。OSS对象存储,七牛云存储,CDN,缓存。缓存,缓存架构,缓存数据,缓存有效

    2024年03月13日
    浏览(36)
  • PyTorch学习笔记(二):PyTorch简介与基础知识

      👨‍💻 作者简介: 大数据专业硕士在读,CSDN人工智能领域博客专家,阿里云专家博主,专注大数据与人工智能知识分享, 公众号: GoAI的学习小屋,免费分享书籍、简历、导图等资料,更有交流群分享AI和大数据,加群方式公众号回复“加群”或➡️点击链接。 🎉 专栏

    2023年04月09日
    浏览(32)
  • 震撼来袭!(USB Camera,支持同时开启多路摄像头,支持旋转、镜像)

    Android灵活实用的Android平台UVC摄像头实例,无需任何系统权限即可轻松打开您的uvc摄像头( 支持多路摄像头 )。 Feature 支持开启多路摄像头; 支持在Android 4.4~11开启camera1、camera2和uvc camera; 支持预览480p、720p、1080p等; 支持抓图(.jpg)、视频(.mp4/.h264/yuv)和音频(pcm/mp3/aac) 支持旋

    2024年02月11日
    浏览(36)
  • springboot项目同时支持http和https访问

    前提是电脑安装了JDK并配置了环境变量,打开CMD,并 输入 密码和证书内容根据自己情况可以自定义( 我设置的密码是:dev123 ),如图所示: 以上操作后即生成证书,证书位置在cmd的路径位置,一般在路径C:UsersAdministratorserver.keystore 将 文件 server.keystore 复制到 Springboot项目

    2024年04月23日
    浏览(21)
  • 探索ClickHouse——同时支持导入导出功能的文件格式

    在 《探索ClickHouse——安装和测试》中,我们使用clickhouse直接从文件中读取数据。clickhouse支持多种格式文件的导入导出,本节我们对此进行分类介绍。 原始的JSON格式只支持导入,不支持导入。同时支持导入和导出的是其他几种类型: JSONEachRow JSONStringsEachRow JSONCompactEachRow

    2024年02月07日
    浏览(33)
  • idea同时编辑多行-win&mac都支持

    idea编辑器非常强大,其中一个功能非常优秀,很多程序员也非常喜欢用。这个功能能够大大大提高工作效率-------------多行代码同时编辑 按住alt+鼠标左键上/下拖动即可 这样选中多行后,可以直接多行编辑。 优点 :可以容易地选中 连续多行 ,同时编辑 缺点 :必须是连续行

    2024年02月01日
    浏览(32)
  • 从零开始学习Netty - 学习笔记 - NIO基础 - ByteBuffer: 简介和基本操作

    1.1. Channel Buffer Channel 在Java NIO(New I/O)中,“Channel”(通道)是一个重要的概念,用于 在非阻塞I/O操作中进行数据的传输 。Java NIO提供了一种更为灵活和高效的I/O处理方式,相比于传统的I/O,它具有更好的性能和可扩展性。 常见的Java NIO中的通道类型: FileChannel(文件通道

    2024年02月20日
    浏览(36)
  • Nginx同时支持Http和Https的配置详解

    当配置Nginx同时支持HTTP和HTTPS时,需要进行以下步骤: 获得SSL证书:从可信任的证书颁发机构(CA)或使用自签名证书创建SSL证书。 将证书和私钥保存到服务器:将SSL证书和私钥文件保存到指定的位置,通常是 /etc/nginx/ssl/ 目录。 配置HTTP服务: 打开 Nginx 配置文件: 通常是

    2024年02月02日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包