我们为什么选择使用React生态补偿资金使用方案

为了账号安全,请及时绑定邮箱和手机
点击这里,将文章分享到自己的动态
JavaScript 框架回顾 -- React生态系统
目前最为庞大又在快速增长的当属 React 了,本文就来重点介绍 React 的生态系统。首先看看与 React 有关的软件包的生态系统。在 Facebook 构建 React 之初,就有许多来自于开源社区第三方库的软件包。这些软件包使用 React 补充其它功能,以便提供完整的应用程序解决方案。当然,安装包中也存在着提供相似功能的彼此竞争关系。 React Router丰富的 Web 应用程序具有的一个共同特点就是:提供了多个“路由”。这些“路由”本质上是不同的功能块,在浏览器中表现为单独的 URL。React 不需要为简单的应用程序使用路由,同时在一些桌面和移动应用程序环境中,路由也不是必需的。因此,React Router 虽然是最受欢迎的 React 应用程序的路由解决方案,但 React Router 的相对流行程度却只有 React 的一半。了解 React 的开发者都知道,React 应用于一个明确定义的问题领域并具有明确定义的接口,这也使其本身可以应用于比原本设计的更广泛的应用领域。这种方式虽然增加了开发者使用 React 的 pool,但也进一步提升了 React,扩展了 React 的生态系统,创造了一个有益的循环。React 作为一个部分的解决方案,本质上是不如 Ember 和 Angular 这样的完整框架使用起来方便的。 FluxReact 作为一个非完整的解决方案,其中一个尚未解决的问题就是应用程序的数据层部分。当引入 React 时,Facebook 还推出了 Flux(一种管理应用程序中状态的方法)和 GraphQL(一种用于在客户端和服务器之间进行通信的系统)。这两者都不如 React 本身流行。Flux 在 React 之后不久就被推出了,但却直到2015年中期才得到普及。在这期间,Flux 与 React Router 一起呈同步上升趋势,这也表明 Flux 和 React Router 正在网络应用程序中配合使用。但是,2015年中期之后,Flux 和 React Router 的轨迹发生了很大的分化,Flux 在受欢迎程度上缓慢下滑。 Redux造成 Flux 受欢迎下降的一种原因是 Redux 的崛起。Redux 和 Flux 针对的是应用程序功能中完全相同的部分,Redux 于2015年中期正式推出,并且使用率迅速提高,而 Flux 则在同一时期开始逐渐下滑。Redux 现在几乎和 React Router 的相对流行程度相当,而且两者相互紧密相关,并且都越来越受欢迎。这也表明 Redux 已经取代 Flux 成为 React 网络应用程序中首选的状态管理系统。 MobXMobX 是2016年中期推出的,也是 Flux 和 Redux 的竞争对手。虽然 MobX 的使用率还不高,但是目前正在快速增长,值得关注。 RxJSRxJS 是 Flux 和 Redux 的另一个竞争的状态管理组件。RxJS 的流行情况不好统计。首先,RxJS 有两个现存版本,一个是传统版本 rx,一个是当前版本 rxjs。这两个版本下载量都很大,其中 rx 下载量正在下降,而 rxjs 下载量正在增长。RxJS 的使用基本是作为其它项目子依赖的驱动,特别是对于 Angular CLI。这意味着所有使用 Angular 的驱动器,都需要使用相同的 RxJS。同时,RxJS 也被合并到其它一些流行的命令行工具中。 GraphQLGraphQL 与 React 是由 Facebook 同时开发的,但是这两者之间并没有内在的联系。GraphQL 是 Web 客户端查询服务器数据的一种方式。GraphQL 通过名为 Relay 和 Apollo 的两个竞争库得到了普及,Relay 和 Apollo 提供了一个 Web 应用程序,用于生成 GraphQL 和管理数据流。Relay 首先被发布,并且正在增长,但是半年后发布的 Apollo 却上升的更快,同时也越来越受到欢迎,并且增长速度还在明显加快。虽然 GraphQL 开发者使用量的绝对数还很小,但是 Apollo 的增长轨迹意味着 GraphQL 很值得开发者关注。 React生态系统概述通过上图中 React 生态系统12个月的变化趋势,可以得到以下结论:Apollo 的使用率正在快速增长。Flux 的使用率正在下降。React Router 和 Redux 都非常受欢迎,并且在使用中具有紧密相关的联系。MobX 具有良好的增长,但其使用率还远没有到达 Redux。React 本身的生态系统是巨大的。
若觉得本文不错,就分享一下吧!
评论加载中...
看过此文的用户,还看了以下文章
正在加载中
作者相关文章还没有账号
用户名或密码错误
前两天,我们了 npm 2018 年的第一个 JavaScript 现状报告的第一部分,该部分讲述了 2017 前端框架的现状,我们也从中看到在前端框架领域 React 的主导地位。
今天,npm 发布了 —— 对强大的 React 的生态系统进行了分析。
来看看与 React 有关的软件包的生态系统。
刚开始 Facebook 构建 React 时,许多这些软件包来自开源社区的第三方。这些软件包使用 React 并为其补充功能以提供完整的应用程序体验。它们中有几个都提供了类似的功能,彼此竞争。
React Router
丰富的 Web 应用程序都有一个共同特点,那就是提供多个“路由”,这些“路由”本质上是不同的功能块,在浏览器中表示为单独的 URL。
React 不需要为简单的应用程序使用路由,路由有时会用在桌面和移动应用程序等环境中,而它并不是必需的。因此,React Router 虽然是最受欢迎的 React 应用程序路由解决方案,但使用量却只有 React 本身的一半。
这是我们从 React 学到的一部分:通过将自己限制在一个明确定义的问题领域并具有明确定义的接口,它使其本身可以应用于比原始设计者更广泛的应用范围。这个决定增加了开发者在 React 上的使用和工作频率,进一步改进了 React,并扩展了它的生态系统,创造了一个有益的循环。这是一个令人惊讶的结果,因为作为一个部分的解决方案,React 本质上不如 Ember 和 Angular 这样的完整框架使用起来方便。
在一个完整应用程序中,React 未解决的一个部分是数据层。当年 Facebook 推出 React 时,还推出了Flux(一种管理应用程序中的状态的方法)和 GraphQL(一种用于在客户端和服务器之间进行通信的系统)。不过两者都不如 React 本身流行。
Flux 在 React 发布之后不久就被推出,直到 2015 年中才得到普及,但是 2015 年中期之后,它们的轨迹发生了很大的分化,Flux 的受欢迎程度在缓慢下滑。
Flux 没落的一个解释是 Redux 的崛起。针对应用程序,Redux 和 Flux 提供了相同的功能,但给开发者带去了不同的体验,Redux 于 2015 年中期推出,迅速发展并超过了 Flux,而 Flux 则在同一时间开始下滑。
Redux 现在几乎和 React Router 一样流行,而且两者紧密地相互追随,并且越来越受欢迎。这表明 Redux 已经取代 Flux,成为 React 网络应用程序的首选状态管理系统。
MobX 于 2016 年年中推出,是 Flux 和 Redux 的竞争对手。目前它正在快速增长,但仍然是这个领域的“萌新”,不过值得关注。
React 生态中很奇怪的一个项目 RxJS,它是另一个与 Flux 和 Redux 竞争的状态管理组件。RxJS 的流行不容易追踪和解释。首先,它现存有两个版本,一个是传统版本rx,一个是当前版本rxjs。这两个下载量都很大,虽然rx在下降,而rxjs在增长。
RxJS 的使用似乎是作为其他项目的子依赖,特别是 Angular CLI 的驱动。这意味着所有使用 Angular 的驱动器都使用相同的 RxJS。它也被合并到其他一些流行的命令行工具中。
虽然它和 React 一样,在 Facebook 内部开发并同时发布,但 GraphQL 与 React 并没有内在的联系;它只是 Web 客户端查询服务器数据的一种方式。它通过名为 Relay 和 Apollo 这两个具有竞争性的库获得了流行,这两个库提供了一个 Web 应用程序,用于便捷生成 GraphQL 和管理数据流。
Relay 发布得比较早,并且正在增长,但是已经被半年后发布的 Apollo 超越,Apollo 已经越来越受欢迎,并且增长速度明显加快。虽然 Apollo 的绝对数量还很小,但是它的增长轨迹值得深入挖掘。
React 生态系统总结
再看看过去 12 个月的增长,我们可以看到相关软件包在 React 生态系统中的相对位置。趋势也变得清晰:
Apollo 正在快速增长
Flux 在慢慢没落
React Router 和 Redux 都非常受欢迎,并且在使用中紧密联系,所以我们将它们放在了一起
MobX 有着良好的增长,但尚未能挑战 Redux 的地位
React 本身就十分庞大
全部评论: 0 条
Copyright (C)2017 Noneone All Rights Reserved 皖ICP备号【聊】我个人眼里的ReactJs生态系统
大家好,今天是周末,写篇短一些的文章,简单的聊一聊Reactjs的生态结构。
所谓某个前端框架的生态结构,其实意思就是说,某个前端框架有许多事情自己做不了,需要安装一大堆其它的东西。这一大堆东西和这个框架的关系,就是所谓的“生态系统”。呵呵,我发现这几年前端圈里越来越会造词儿了。
明明是自己功能不够,需要安装一堆这那的东西,叫“生态系统”;只不过是浏览器加载、创建一些dom节点,起个名叫“生命周期”;无非是对function的再封装,起个名叫“自定义指令”,。。。
花花轿子人抬人。好吧,你说生态系统,那就生态系统。
首先第一个 React Router,路由,这个东西做单页必备。其实本质就是操作浏览器的location.href,根据不同的url获得不同的值,然后更新同一个页面中的指定的容器内容。
目前看来,Router是ReactJs里最常用的路由解决方案了。
然后是Redux,这东西应该是2016年前后推出的吧,它的出现直接导致了FLux的没落。不过对我是好事,至少免了我学习Flux的麻烦。
我看网上说它是负责应用状态管理的。说的很高大上,后来我才想明白,在ReactJs里的状态就是各种“值”。然后把它们保存在一个独立的地方,再搞一些公共方法去操作。
这不就是个大全局变量,里面放了个对象嘛。还是说我理解错了?应该没错嘛。
一个事件里面是{type:xx123},把它从父组件传递到子组件,子组件触发事件,就dispatch这个type了,然后reducers里面就得到了xx123,大概是这个套路嘛。
不就是把组件之间的值传递改为组件之间的事件传递,然后这些事件操作一个全局变量里面的值?我应该没理解错吧。
最后,祝大家周末愉快。
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点React 生态系统:从小白到大神 - 编程语言 - ITeye资讯
引用来源:
引言
要了解React的思想,还得从下面这张图说起。
The State-Action-Model (SAM) Pattern
话说2016年2月的一篇文章no-more-mvc-frameworks描述了一种新的函数式、响应式模型,而它的思想来源正是来自React和TLA+,这一模型就叫做SAM模型。
SAM模型让前端开发人员更专注于从模型中去建立视图,而不会受牵制于基础API。因此SAM完全符合软件架构的重要设计原则。这种模型的最佳实践莫过于React与Angular了,随着他们的发展,前端架构思想开始了转变。
虽然React官网将React定位为创建用户界面的JS库,但我想说的是,“React is just the View in MVC”这一说法太过委婉了。React所带来的是整个前端技术栈的进化,各种函数响应式框架逐渐在完善。随着React的发展和流行,围绕着React的生态系统已经逐渐形成。而从React小白到大神,必须要经历三个境界,但总归起来就五个字:“就解问题嘛”——出自“阿里扫地僧”多隆。因此,本文通过描述每个知识点解决了哪些问题的方式来为大家介绍React生态系统。
一、React庞大的体系
1.1 ReactJS
ReactJS到底解决了哪些问题呢?先来一份总结的ReactJS特点:
高效:React通过虚拟DOM和Diff算法,最大限度地减少与DOM的交互和渲染。——提高运行效率
组件化:通过 React 构建组件,使得代码更加容易复用,适应大型项目开发。——提高可维护性和复用性以及开发效率
模块化:通过模块化工具库来解决模块化问题——提高可维护性和复用性
单向数据流:React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。提高可维护性。
一言以蔽之,ReactJS解决了前端技术规划中应该考虑的这几件事:组件化、模块化、开发效率、运行效率、可维护性…
1.2 React生命周期
下图很直观地描述了React生命周期的整个过程:
React生命周期
这里有个不错的github项目:react-pxq。这是的一个react + redux项目,其中渗透出了作者(bailicangdu)对react的理解,能很好的帮助大家快速上手react。生命周期这东西说简单也简单,说难也难。有的人说,不就是几个阶段吗?但如果你是去面试,有经验的面试官可能会出这样几道题:1.React在初始化和更新的时候会触发的钩子函数?2.父组件在更新状态的时候父组件与子组件的生命周期顺序是怎么执行的?针对第1个问题,就算不懂的人看几眼背一下都能答出来。而第2个问题就比较考验你的知识深度了。首先需要知道子组件在什么时候会被渲染?它一定会被渲染吗?有什么方法能够减少它的渲染?一大堆引申的知识点,如果能应对如流(最好的方法是看源码咯),相信你会给面试官留下好印象。
1.3 React Router
React Router是React中使用的路由库,通过管理URL来管理组件及对应的状态。Router组件本身只是一个容器,真正的路由要通过Route组件定义。Router组件支持嵌套路由、支持通配符,能让你轻松控制整个项目的路由结构。
Redux跟React没有直接的关系,本身可以支持React、Angular、Ember等等框架。Redux其实是Flux-like 更优雅的写法,下图对比了Flux与Redux的数据流向:
Flux与Redux的数据流向
通过react-redux这个库,可以方便的将react和redux结合起来:React负责页面展现,Redux负责维护/更新数据状态。大致过程为:当用户在View中触发事件产生Action,Action 进到 Reducer,Reducer根据Action Type去匹配对应处理的动作,然后返回一个新的状态。View则因为检测到状态更新而进行重绘。Redux只有一个Store负责存放整个App的状态,而唯一能改变状态的方法只有发送Action。Redux社区中使用比较多的库有:redux-sagas、redux-gen、redux-loop、redux-effects、redux-side-effects、redux-thunks、rx-redux、redux-rx...
1.5 React测试
目前广大开发者偏向使用Airbnb团队开发的enzyme,它也可以与其他测试工具如Jest、Mocha等配合使用,比如我们使用jest-enzyme,由于Jest是Facebook开发并且是在Jasmine测试框架上演变而来的,断言格式我们比较熟悉,因此大家可能更容易上手。Jest的目标是减少测试一个项目所要花费的时间和认知负荷,它提供了大部分我们需要的现成工具:快速的命令行接口、Mock工具集以及它的自动模块Mock系统,总的来说就是让测试变得更简单。
1.6 React Native
RN是在Facebook所提出的核心概念Learn once, write anywhere所诞生的产物,着力于提高多平台开发的开发效率。我们可以同时为android和ios两个平台开发App,只需要根据两个平台不一样的地方去做一些调整即可。RN主要负责UI部分,而原生主要负责交互和数据处理。RN属于hybrid开发,并且与原生无缝连接,相比Web App和Native开发,RN取长补短,集合了两者的优势。RN开发的APP可以跳过App Store审核,远程更新代码,提高迭代频率和效率,既有Native的体验,又保留React的开发效率。 RN的原理是将React代码转化为原生API,iOS一套,Android一套。RN在一开始生成OC模块表,然后把这个模块表传入JS中,JS参照模块表,就能间接调用OC的代码。
相当于买了一个产品(OC),对应一份说明书(模块表),用户(JS)参照说明书去操作这个产品。 如何学习RN呢?可以跟着git上的awesome系列去进阶。从源码角度看RN,主要需要了解RN如何做到JS和OC交互、RN的启动流程是怎样的、如何加载JS源码、UI控件的渲染流程、事件处理流程以及RN与iOS之间的通信方式等。
做React还需要懂什么?
Node打破了过去JS只能在浏览器中运行的局面。前后端编程环境的统一,大大降低了前后端转换所需要的上下文交换代价。Node就是浏览器在协议栈另一边的倒影,虽然不处理UI,却与浏览器有着相同的机制和运行原理。其高性能并行I/O使得分布式开发更加高效,利用稳定接口可提升web渲染速度,也十分适合做实时应用开发。第2部分将阐述Node在前后端中的角色作用。
1.8 NPM与Yarn
我们知道Node的包描述文件是一个JSON文件,用于描述非代码相关的信息。而NPM则是一个根据包规范来提供Node服务的Node包管理器。它解决了依赖包安装的问题,却面临着两个新的问题:
安装的时候无法保证速度和一致性。
安全问题,因为NPM安装时允许运行代码。
于是Yarn就出现了,不要慌,它并没有试图完全取NPM,不过Yarn确实也是可以完美替代npm的。
1.9 模块化开发
随着web应用的发展,前端的业务逻辑越来越复杂,代码也越来越多,各种问题就暴露出来了:全局变量污染、函数命名冲突、依赖关系混乱等问题严重阻碍了前端开发的发展,JS模块化势在必行。通过开发者不断地尝试,出现了各种规范和实践:
Node.JS首先采用了js模块化的概念。Node.js服务器端通过exports、module.exports来输出模块,并使用require同步载入模块,而浏览器端的可以使用Browserify实现。
AMD规范用于异步加载模块,主要用于浏览器端,当然也支持其他js环境,主要应用有requireJS。
ES6 Module
ES6标准定义了JS的模块化方式,目的是取代CommonJS、AMD、CMD等规范,一统江湖,成为通用的模块化解决方案。但浏览器和Node端对ES6的支持度还不是很高,需要用Babel进行转译(Babel编译器可以将ES6、JSX等代码转换成浏览器可以看得懂的语法)。
Gulp/Grunt+Webpack/Browserify
在构建前端项目资源,使用自动化工具协助进行自动化程序码打包、转译等重复性工作,可以大幅提升开发效率。
Gulp
Gulp和Grunt一样是一种基于任务的构建工具,能够优化前端工作流程。
Webpack
webpack傻瓜式的项目构建方式解决了模块化开发和静态文件处理两大问题。但随着项目越来越大,特定需求的出现就使得webpack越来越难配置了。因此webpack在没太多特定需求的项目使用是没有问题的,当然,webpack的未来肯定是围绕ES的支持度、构建速度与产出代码的性能和用户体验来建设的。其未来的重要关注点:
高性能的构建缓存
提升初始化速度和增量构建效率
更好的支持Type Script
修订长期缓存
支持WASM模块支持
提升用户体验
Browserify
Browserify是基于Unix小工具协作的方式实现模块化方案的,轻便且配置容易,管道形式的组织则让开发者很容易插拔或修改其中某一环节的操作。
至于怎么配合使用,我觉得仁者见仁智者见智,确实是不好下定论,只有亲身体验才能择更好者而用吧。
ES2015/ES6
我们都知道ECMASCRIPT是组成JS的三要素之一,ES6其第6个版本,ES的历史确实也挺曲折的。通过ES6最常用的特性,我们来了解ES6到底解决了什么:
let, const(变量类型):解决变量作用域泄露的问题。
Class, extends, super(类、继承):让对象原型的写法更加清晰、更像面向对象编程的语法,也更加通俗易懂。
Arrow functions(箭头函数):1.简洁、简洁、简洁,2.解决this绑定的问题(继承外面的this)。
Template string(模板字符串):解决传统写法非常麻烦的问题。
Destructuring(解构):避免让API使用者记住多个参数的使用顺序。
Default, rest(默认值、参数):简化,替代arguments,使代码更易于阅读。
ImmutableJS
我们知道在JavaScript中有两种数据类型:基础数据类型和引用类型。在JavaScript中的对象数据是可以变的,由于使用了引用,所以修改了复制的值也会相应地修改原始值。通常我们用deepCopy来避免修改,但这样做法会产生资源浪费。而ImmutableJS的出现很好的解决了这一问题。
React的生态系统还有嘘嘘多多相关的知识,本文并不能全面涵盖所有知识,望谅解。另外,推荐大家从git上的awesome系列去学习你想要学习的一门知识。如果是有英文而没有中文,大家也可以fork下来去做一些翻译,为大前端技术做做贡献嘛!:-D
二、前后端架构分离
前后端分离的分层架构图
很多人都有过MVC架构的开发经验,从Spring MVC开始,写JSP,再到使用freemarker,然后再到狭义的前后端分离,也就是Web端通过ajax调用接口,使用JS把数据渲染到页面上。以前后端人员套页面,数据结构和业务逻辑混淆在一起,项目越来越大后,维护起来特别的繁琐。目前看到的前后端分离项目都是上图所示这种形式去实现的。尤其是在大公司,基本都是采用面向服务架构的开发模式,团队开发中的沟通成本以及职责明确特别重要。而前后端分离的意义主要在于解耦,解耦后前后端职责划分更明确,前端能做的事也越来越多,比如我们可以在Node层做些监控和日志管理,将SSO登录集成进Node层,使用PM2对Node做多进程管理。这样之后,后端项目就可以做成"微服务"式的架构。
从前端项目工程化管理的角度来看,后端项目"微服务"式架构有如下优势:
每个项目都很有针对性,仅关注某个业务方向。
每个项目可由不同团队独立开发,互不影响,能快速响应需求、及时推出市场。
允许在频繁发布不同项目的同时保持系统其他部分的可用性和稳定性:依赖少、构建速度快 & 上线速度快。
前端只与Node中间层进行数据通信,Node层则通过thrift接口与后端服务进行数据通信;Node 中间层的 API 设计遵循 RESTFul 的架构风格,并且都以 /api/*** 做为前缀;Node 中间层可以视情况添加缓存服务
三、前端工程化
现代化的前端开发已经不仅仅是业务代码本身,而是涉及了很多方面的需求,比如:开发需求、共享需求、性能需求、部署需求。
3.1 开发需求
如果是新团队,在开始一个前端项目时,我们会先进行技术选型,然后定义代码规范,再根据业务模块拆分进行项目目录规划,这些相关的需求都算作前端开发需求。如果在成熟团队中,可能已经有技术沉淀了,怎么去优化和改进以及文档化就成为我们需要去琢磨的事了。
ESLint是一个用来识别 ECMAScript 并且按照规则给出报告的代码检测工具,使用它可以避免低级错误和统一代码的风格。我们可以方便的在配置文件中配置自己想要的风格规范,通常推荐使用Airbnb JavaScript或者google的规范。
我们可以使用less或sass来优化css的开发过程,而如果考虑到浏览器兼容性的hack问题,我们可以用postcss作为预处理工具帮我们自动解决这些 hack。
hmr能够在感知你的代码有变动的情况下自动调用编译工具编译源码,然后通过 livereload 自动刷新浏览器,这样做的话能节省你的调试时间。
由于采用了前后端分离的开发模式,在真实开发中,为了让前端开发不受后端进度的影响,我们需要对数据进行mock。前后端先约定API 接口定义,然后前端根据定义mock 接口。一般大公司会有自己的mock平台,小公司如果没有的话也可以使用开源的mock工具。
3.2 共享需求
对于公司而言,快速高效地实现业务是终极目标,这对前后端来说都是挑战。在前端团队中,能够形成基础组件库和业务组件库是一种必然需求。
所以在设计前端项目架构的时候,一定要考虑业务的组件化和可共享性。有人说开发通用组件是造轮子,其实造出符合自己的轮子何尝不是一种领悟。共享需求主要有四种:基础代码共享、通用工具方法共享、基础交互组件共享以及业务组件共享。
在组件方面,React提供了天然的组件结构,我们只需要在开发过程中,隐藏组件的内部实现,每个组件更独立,很容易形成可重用组件。
3.3 性能需求
如何对web资源的加载速度进行优化呢?
JS/CSS 代码压缩
JS/CSS 代码合并
图片压缩
CSS 图片精灵或雪碧图
这些过程都可以在前端工程的构建过程中使用Grunt/Gulp、webpack等构建工具实现。
3.4 部署需求
前端工程通常是由多人维护的,所以会用代码管理工具来管理源码,然后将开发流程和部署流程与git结合起来。多人分支协作流程:用git flow来管理代码分支。
实践证明,围绕着React所建立起来的生态系统以及组件化开发思想能有效地分解大规模应用的复杂度、提高资源复用率。简单的说,React拥有以下你想要的特性:
同构渲染:服务器端和客户端共用一套代码,一份模板,两端使用。
完全组件化:自动分析加载页面的静态资源依赖。
生态圈:畅享所有 React 组件。
当然,使用React也有一些缺点,例如页面 javascript 文件体积动辄上百KB,这就限制了在移动端项目上的使用。我们可以通过一些离线化方案,例如使用 LocalStorage 缓存等来尽量的减少对大体积静态资源的请求。
总的来说,React的生态系统大而全,如果没有涵盖的部分,还请海涵。仅此与各位dalao共享一些个人观点,共同进步。欢迎访问http://www.icoder.top
选择ReactJS的五个理由
ReactJS()是由顶尖的IT公司Facebook和Instagram协同开发者社区维护的一个开源Javascript库。这个框架现在被广泛地应用于开发Web应用程序的用户界面。最初开发这个特别框架的目标是“搭建数据需要频繁更改的大型应用程序”。
这样的工具有很多都是我们经常使用的,但其中只有极少数最终彻底改变了我们的工作方式,ReactJS就是其中之一,这就是我们为什么强烈推荐React的原因。本文将会列出许多大公司,比如Facebook、Instagram、Whatsapp使用ReactJS的5个原因。
React效率极高
React可以创建存放组件的虚拟DOM(文档对象模型Document Object Model),这一特点为开发人员提供了高度灵活性和惊人的性能收益,因为React能够提前计算出DOM中哪些内容需要更改,并对DOM树做出相应地更新。通过这种方式,React避免了代价高昂的DOM操作,从而大幅提升了工作效率。
Javascript库
JSX()是Javascript和HTML的完美结合,可专门用于ReactJS,大大简化了编写网站组件的流程。
React的主要优势是合理地利用了本地API达到了跨平台的效果。
JavaScript框架的缺陷之一是对搜索引擎十分不友好,尽管最近已经有所改进。
但是,React.js在这方面却做的很出色。你可以在服务器端运行React.js,虚拟DOM可以像常规的web页面一样返回给浏览器,不需要任何特殊技巧。
注重用户界面
与MeteorJS、Firebase、AngularJS不同的是,React Native十分重视用户界面。通过设备本地环境与React Native的Javascript交互,可以给用户提供完美的响应式界面。虽然这一定程度上增加了应用的加载时间,但也保证了程序运行过程中的流畅。
简单,使用便捷
如果准备开发React项目,别忘了安装ReactJS的官方Chrome插件,它能使你的调试过程变得更加简单。安装完插件之后,你就可以像在元素面板中浏览一个常规DOM树一样直接查看虚拟DOM。
希望这五个优点能够让你对这个框架的独特性有一定了解,如果你正在开发一个SEO友好且能处理大量流量的web应用程序,ReactJS应该是个不错的选择。
转载请注明:
原文链接:翻译:zhangrj本文链接:
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!}

我要回帖

更多关于 新能源汽车使用生态 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信