前言
首先,失踪人口正式回归,近来遇到些事情导致原定的系列计划搁置,深表抱歉,后续会正常迭代。
但荣获鸽王跟水王的称号是我没想到的。
React 的起源
React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站。做出来以后,发现这套东西很好用,就在 2013 年 5 月开源了。
朕就是这样汉子,就是这样秉性,就是这样皇帝。只要我不满意了,就亲自上。
React 的介绍
MVC 架构
首先我们一起了解一下 React 的架构设计
MVC 全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
前端代表的框架有:AngularJS、BackboneJS、Ember、React、Knockout 等。
但 React 并不是完整的 MVC 框架,一般更偏向 View 层。将界面分割成每个独立的组件与模块,再相互组合、嵌套成一个完整页面
特点
- 声明式设计:React 采用声明范式,可以轻松描述应用。
- 高效:React 通过对 DOM 的模拟,最大限度地减少与 DOM 的交互。
- 灵活:React 可以与已知的库或框架很好地配合。
优势
- 虚拟 DOM,减少前端对 DOM 操作,跨浏览器兼容,使研发更针对于项目业务本身
- 单向数据流、组件化思想等,提高代码质量
- 庞大的社区生态圈
React 的发展
总体上 React 团队长期在框架更新迭代的 api 破坏性升级上还是比较收敛的,特别是 17 版本中引入了渐进式升级,是针对旧工程的一个优化,很多时候,巨石旧项目是维护很头疼的时候,无论是迭代还是重构升级。
大家都不喜欢埋坑,但是无论你埋不埋,坑都会在那,有的坑浅,一脚就过去了,有的坑深,进去了可能就出不来了,甚至还有进去之后继续挖的。渐进式升级虽然解决不了坑,但是可以加个桥,倒也不错。
从上图我们可以发现,由于拥有庞大的社区生态以及自身对框架的迭代升级的收敛,npm 下载增速虽然渐缓,但仍在稳步上升中。
React 的生态
脚手架/框架类
- Umi(Umi 是一个可插拔的企业级 react 应用框架。拥有众多生态,开箱即用好选择)
- Create React App (Create React App 是一个官方支持的创建 React 单页应用程序的方法。它提供了一个零配置的现代构建设置。想自定义配置的同学,可以以此为基础上手)
- Nextjs(SSR 框架,对 SEO 或首屏幕渲染有要求的,可以上手)
- React-vr(React vr 框架,似乎对展厅、房屋设计这块的同学有帮助?)
- Reactxp(React 多终端框架,除了目前不能用在 mac 上)
组件库类
- Ant Design 系列(蚂蚁金服出品,pc、moblie等。引入了 Ant Design 设计概念)
- Material-UI(实现了谷歌Material Design设计规范。世界上最流行的React界面框架之一)
工具类
- Redux(遵循函数式编程思想的状态管理插件)
- Mobx(面向对象编程和响应式编程的状态管理插件)
- Immutable-js(Immutable.js 是由 Facebook 开源的一个项目,主要是为了解决 javascript Immutable Data 的问题)
跨端类
- Remax(阿里出品的 React 跨端框架,目前支持支付宝、微信、字节小程序)
- Taro(京东出品的类 React 跨端框架,目前支持主流小程序及 React Native)
- React Native(使用 JavaScript 也能编写原生移动应用的 React 框架)
写在最后
React 是一个非常成熟的框架,广大的前端朋友,还是非常值得一试,包括它的设计理念、技术细节等等,都可以对个人技术提升有帮助。
不要仅仅局限一类技术框架,设计理念是与时俱进的,Jquery 统治的那些年一样会过去了被淘汰掉。