umijs有什么好处_UmiJS应用框架
介绍
umi,中文可发音为乌米,是一个可插拔的企业级 react 应用框架。umi 以路由为基础的,支持类 next.js 的约定式路由,以及各种进阶的路由功能,并以此进行功能扩展,比如支持路由级的按需加载。然后配以完善的插件体系,覆盖从源码到构建产物的每个生命周期,支持各种功能扩展和业务需求,目前内外部加起来已有 50+ 的插件。
特性
开箱即用,内置 react、react-router 等
类 next.js 且功能完备的路由约定,同时支持配置的路由方式
完善的插件体系,覆盖从源码到构建产物的每个生命周期
高性能,通过插件支持 PWA、以路由为单元的 code splitting 等
支持静态页面导出,适配各种环境,比如中台业务、无线业务、egg、支付宝钱包、云凤蝶等
开发启动快,支持一键开启 dll 等
一键兼容到 IE9,基于 umi-plugin-polyfills
完善的 TypeScript 支持,包括 d.ts 定义和 umi test
与 dva 数据流的深入融合,支持 duck directory、model 的自动加载、code splitting 等等
架构
下图是 umi 的架构图。
从源码到上线的生命周期管理
市面上的框架基本都是从源码到构建产物,很少会考虑到各种发布流程,而 umi 则多走了这一步。
下图是 umi 从源码到上线的一个流程。
umi 首先会加载用户的配置和插件,然后基于配置或者目录,生成一份路由配置,再基于此路由配置,把 JS/CSS 源码和 HTML 完整地串联起来。用户配置的参数和插件会影响流程里的每个环节。
环境准备
首先得有 node,并确保 node 版本是 8.10 或以上。(mac 下推荐使用 nvm 来管理 node 版本)
$ node -v
8.1x
复制代码
推荐使用 yarn 管理 npm 依赖,并使用国内源
# 国内源
$ npm i yarn tyarn -g
# 后面文档里的 yarn 换成 tyarn
$ tyarn -v
复制代码
然后全局安装 umi,并确保版本是 2.0.0 或以上。
$ yarn global add umi
$ umi -v
2.0.0
复制代码FAQ:如果提示 umi: command not found,你需要将 yarn global bin 路径配置到环境变量中,方法如下:
# mac 系统:
$ sudo vi ~/.bash_profile
# 在 .bash_profile 中添加下面一行:
export PATH="$PATH:`yarn global bin`"
# windows系统:
# 获取 global bin 的路径
$ yarn global bin
C:\Users\Administrator\AppData\Local\Yarn\bin
# 复制上面的 global bin 的路径,添加到系统环境变量 PATH。
复制代码
umijs有什么好处_UmiJS应用框架相关推荐
- umijs 修改默认配置_UmiJS基础教程(2) 目录结构
一个基础的 Umi 项目大致是这样的, .├── package.json├── .umirc.ts├── .env├── dist├── mock├── public└── src ├── .umi ...
- java protostuff 好处_Java 序列化框架性能对比(kryo、hessian、java、protostuff)
简介: 优点 缺点 Kryo 速度快,序列化后体积小 跨语言支持较复杂 Hessian 默认支持跨语言 较慢 Protostuff 速度快,基于protobuf 需静态编译 Protostuff-Ru ...
- php web框架 symfony简介
Symfony是基于MVC架构的PHP框架 Symfony是一个用于快速开发现代Web应用程序的开源MVC框架. Symfony是一个完整的Web框架.它包含一组可重用的PHP组件.您可以在应用程序中 ...
- 多解决些问题,少谈些框架和流程
大概我刚刚毕业那会,是常常喜欢在群里和网友谈论框架的,尤其是游戏服务器的框架设计,比如网关啦,逻辑服务器啦,地图服务器啦,登陆服务器啦等等,巴拉巴拉一大堆:我那会大概是刚刚接触游戏开发,刚刚明白了一条 ...
- **【ci框架】精通CodeIgniter框架
http://blog.csdn.net/yanhui_wei/article/details/25803945 一.大纲 [php] view plaincopy 1.codeigniter框架的授 ...
- PHP框架编写和应用知识点,php框架知识点的整理和补充
我们对于比较常见的php框架,已经基本上有所认识,不过一些比较冷门的框架也可以做一个了解,以便日后的特殊使用.本篇整理了4种php框架,在不同的使用方法上都独具特色,其中很多的框架不被大家熟知,下面我 ...
- 前端框架是什么意思?
说起前端框架,很多人都不知道是什么意思,下面本篇文章就来给大家介绍一下前端框架是什么意思?希望对大家有所帮助. 前端框架是什么意思? 前端框架一般指用于简化网页设计的框架,使用广泛的前端开发套件,比如 ...
- java 框架 面试常见题目
(一)spring mvc 工作机制(原理): DispatcherServlet主要用作职责调度工作,本身主要用于控制流程 Spring mvc运行原理 1.springmvc将所有的请求都提交给D ...
- Android DRM框架与基础知识
Android DRM框架与基础知识 Android DRM框架 DRM框架的目的:能让安卓设备可以播放更多的内容,不同的内容和硬件设备可能使用的是不同的内容版权保护机制或者没有版权管理机制,但是安卓 ...
- javaWeb开发中为什么要使用框架
ps:对于框架,刚开始接触编程,网络上查询资料,框架肯定是出现得比较频繁的词,为什么使用框架?当然是因为能够方便我们开发啦,那没有框架之前呢?不用框架该怎么实现呢?个人觉得明白这点对以后使用框架有很大 ...
最新文章
- Angular应用中配置全局路径映射
- 空调能窃听插座能放火?物联网成了“危”联网
- CSS分别设置Input样式(按input类型
- linux磁盘阵列扩容,linux raid1扩容的方法
- 交换机名词解释、配置常用命令
- linux操作命令 mongo_Linux系统下MongoDB的简单安装与基本操作(完美)
- 一道有关switch-case题目
- SSh三大框架的作用
- 故障:OfficeScan Server 中的 DbServer.exe 占用 CPU 过高
- Google 应用与游戏出海 8 月刊: 遨游出海季,共创新增长 (上)
- python基础练习题:找到一个圆锥的体积。【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
- dolphinscheduler2.0.5 HTTP任务类型改造
- html 京东购物车样式,购物车css样式效果
- 如何让Word中某一页横放
- SuperMap iClient for MapboxGL 实现WFS查询功能
- Kaggle数据集-贷款逾期预测
- 6步教你封杀恶意登录服务器的ip
- 大扇区硬盘的出现与分析
- s7300的db块详细说明_(转载)一张表搞清楚西门子S7系列标准DB块与优化DB块
- 精明的程序员——小程大爱