BGIIT Antd+React科普

Ant Design 是什么

AntDesign(简称Antd): 是蚂蚁金服开发和服务于企业级后台产品。

  • Antd提供一套开箱即用的高质量 React 组件
  • Antd拥有完整的一套设计规范

直接看Antd官方文档


React是什么

React是Facebook开源的一个前端框架,官方Slogen是“一次学习,随处编写”。现在在阿里、腾讯、知乎和众多新兴项目、新兴公司中被广泛应用,也是Github现阶段Start最多的前端框架,

其特点是:

  • 组件化
    • 在React中,页面中所有元素都由组件组成
    • 组件复用提高效率
    • 项目如果规划有度,会逐步形成自己的组件库,前端项目开发会越来越快
  • 虚拟DOM
    • 虚拟DOM就是由JS对象模拟DOM树,每次页面中需要更新DOM的时候,JS在循环生命周期中统一对比当前和历史状态的DOM树差异一并更新差异到真正的DOM上。
    • 优势1: 直接操作修改DOM虽然更快,但是如果频繁操作DOM就没有这种统一对比操作修改的性能高
    • 优势2: 由于JS代码操作的是虚拟的DOM,所以只要在其他平台把图层对虚拟DOM进行映射就可以达到跨平台的目的,而前端的开发方式不需要改变,这个思路的衍生品是ReactNative、微信小程序、阿里Weex。
    • 优势3: 纯JS开发界面会获得更高的自由度,这也是AntDesign诞生的原由。
  • 单页Web应用(Single Page Web Application,SPA)
    • 由于是虚拟DOM,整个项目绝大部分代码是JS,所以很自然的就是一个SPA应用,SPA有利有弊,但是当SPA应用使用了ReactRouter,就拥有了多页应用的绝大部分特性(甚至有过之)。SPA的缺点在文后会有提及。
    • 单页应用项目中切换页面不需要访问服务器,切换速度迅捷。
  • JSX
    • JSX是Javascript中嵌入了XML代码,编写过程中与JS无异,JSX只是为了让纯JS创建DOM元素变得更加便捷,Babel会把其中的XML代码转化为纯JS代码,所以不会有兼容性问题, 下面是一段JSX代码,使用的JS版本是ES6:

let React = require('react')

class Comp extends React.PureComponent {
constructor(props) {
  super(props)
}
render() {
  return (
    <div className='button' style={{width:100, height:100}} >
      我是一个div标签
    </div>
  )
}
}
module.exports = Comp

小贴士:

  • React只是一个项目的视图层,如果要编写大型项目需要配合ReactRouter、Redux(或Mobx)
  • React生态非常活跃,有众多第三方组件,Antd只是其中之一。
  • React可以和绝大部分第三方JS、CSS配合使用,例如Bootstrap、Jquery、Anmina.js等等
  • 不要直接使用Jquery或者document.getElementById去操作已被渲染的DOM
  • React的Slogen是“一次学习,随处编写”。会了React之后简单学习一下衍生项目就可以开发其他平台的原生应用,如ReactNative开发iOS应用、Android应用;Electron+React开发Window、Mac桌面应用。

直接看React官方文档


React全家桶

项目中会用到的第三方包

  • create-react-app 官方脚手架
    • Facebook官方的脚手架,零配置搭建基于webpack的React开发环境
    • 集成了Webpack、babel(把高版本JS代码编译成低版本的JS代码)、flexbugs-fixes(低版本Flex兼容编译)、WebLiveReload(开发时,启动一个Nodejs服务器,实时监听代码刷新页面)、并且打包时给JS、CSS文件名都添加了随机的字符,以解决版本更新时JS缓存的问题。
  • Redux 单向数据流,状态管理
    • 单向数据流可以很好的管理整个项目的状态
    • 单纯的Redux只有2KB
  • ReactRouter 单页应用路由
    • 使用了Router,单页应用也可以和多页应用一样,每个页面、状态都有自己的路由地址
  • Antd 蚂蚁金服UI组件
  • ReactMotion 动画框架
    • 高性能弹性动画

白璧微瑕

缺点及应对措施

  • SPA导致于内容页无法SEO,百度的搜索引擎在搜索到某个页面时,只会检索HTML文件中的字符,而SPA页面只有少数HTML文件,DOM树是由JS运行后生成,不会被搜索引擎检索到。
    • 需要SEO的页面需单独编写
    • 若项目对大部分页面都有SEO要求,可使用服务端渲染可以解决所有页面的SEO(开发成本会大幅度上升)
  • 首页加载时间较长
    React(131KB)+ReactRouter(50KB)+AntdCSS(380KB)+项目JS代码(100-300KB) = 800KB
    • 服务端必须开启gzip,可以将以上代码压缩至250KB,基本解决首页加载问题
    • 在首屏用不到的第三方包需要使用懒加载。懒加载不会增加首屏加载时间
    • Antd整个JS项目有1.25MB,按需加载Antd组件, 可大幅度降低Antd的JS代码,例如只使用一个Button编译后50KB
    • 从其他地方节约出这些JS代码的体积,例如所有图片都要进行无损压缩处理
  • 前期开发成本上升
    • 需要学习新的开发方式、组件化开发思路
    • 需要初略了解NodeJS开发环境
    • React全家桶的学习成本较高

文尾:全副武装,才能在需求面前存活

相关文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,219评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,363评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,933评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,020评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,400评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,640评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,896评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,597评论 0 199
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,327评论 1 244
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,581评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,072评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,399评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,054评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,083评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,849评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,672评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,585评论 2 270

推荐阅读更多精彩内容