概要共3672字,预计今年自学时数11两分钟
图源:Aphinya Dechalert提供更多
年末,本栏打声或者说采用了正中下怀React库。虽然对Angular有很大的介绍,本栏对库中明确提出的基本概念维持对外开放宽容的态度。 一已经开始有点儿怪异——在React中,所有人都要以某一的形式展开形式化,并采用智能化执行程序来处置报文。在统计数据各方面,React总有一套独一无二的强制性双向报文监督机制。 但这绝非是令本栏对React敬而远之的原因——或者说令本栏困惑的是街道社区里这些系遇的疯狂教徒。或许其原因在于本栏保有Angular各方面的科学知识大背景,为的是介绍React的运转形式,本栏展开了检视和较为,这难免让绝大多数只听闻过React的人透过DMs气势汹汹地来欺善怕恶。
图源:Unsplash
两个月后,她们赢了,本栏再次归还到Angular的安全可靠门庭。但前段时间,本栏有良机沃苏什卡加进了React Native,下列是本栏对该事件的真实世界观点。
推论
React是两个库
React是两个库——库是用来与其他库结合采用以解决某一问题的。React解决问题的形式在于呈现前端界面和管理频繁变化的统计数据。 React的优势在于双向报文,在仓(salio)方法,并将其放入两个空间,允许在单个空间内展开处置。
透过Angular演示的处置SoC的传统方法
当需要新的条件时,该结构不仅仅局限于Angular,FYI。
透过React实现基于关系的小,以便于检测和理解域和边界。但这绝非两个硬性规则,代码组件的最终大小由开发人员决定。
回顾基础科学知识
React之所以备受欢迎主要其原因在于缺少必要的起步架构。在Angular中需要命令行界面(CLI)来为框架生成必要的设置,而React则与Angular不同,其所需准备工作更少。
然而,许多关于这各方面的较为都会产生一些误解。React是两个库——这意味着它很小且极具针对性。然而,Angular是两个框架,这意味着它是同两个框架下的库集合。
所以,要说Angular的优势名副其实,这是不公平的。 框架决定开发代码的形式,并充当所有关联库的协调器。
框架可根据一组原则或规则,确保各部分都按预期运转。这是非常必要的,因为当有多个需要同时运转的库时,就需要有一些共同基础以便程序良好运转。
React则绝非如此。
React的设计目的绝非在于此——因为其惟一目的就是在屏幕上呈现画面,并清晰地将统计数据连接到DOM(文档对象模型,Document Object Model)。这就是将状态管理委托给Redux的其原因所在。这是为什么当不想处置统计数据和DOM时,就需要寻找其他第三方应用程序的其原因。 这也没什么不对的。这就是React的运转形式,也是React的设计目的所在。
简单并不意味着更好
图源:Unsplash
关于Angular和React之间的争论似乎已持续良久。
然而,这不是本质上哪个更好的问题,而是哪个最适合开发需求的问题。 大部分人的观点是Facebook创造了React。但从整体上看这并没有什么或者说的意义。
是的,React是由Facebook制作的,但是React并不是其采用的唯一技术。还有很多其他后端或前端技术。 如果沿着“出身”这条方向研究下去,那么这对Angular与谷歌、Java与Oracle、.Net与微软也同样适用。 React可能比Angular更容易上手——尤其是对于新开发人员来说,她们不介绍前端代码。
其可能是自学成才,也可能是经验丰富的工程师正在过渡到两个全新开发领域。 抛开技术水平而言,React相当于JavaScript刚推出时的版本——简单易用,而且采用方法基本没有限制。 作为库,React面临的问题是没有结构约束——只有语法约束。这可能导致解构应用程序缺乏命名约定、hapdangerous文件夹结构(若有)以及与生产部署中捆绑打包冗余文件。
从理论上而言,若没有严格遵守与代码不直接相关的编码细节部分,那么最终采用的任何代码都可能落得这个下场。
仍有必要介绍实际的JavaScript以及其他一些科学知识
图源:Unsplash
React也是JSX——这是JavaScript的一大特点,这意味着开发人员仍然需要介绍JavaScript的实际运转形式。 React比起Angular可能更接近于JavaScript,后者的结构更像是一种传统程式设计语言,透过TypeScript展开类型转换和控制。 这就是为什么开发人员需要对JavaScript的运转形式有深刻理解,才能成为一名高效的React开发人员。
开发人员需要明确的其他内容包括状态和报文的基本概念—因为这是React擅长处置的两个主要领域。 一旦超出了最初的待办事项应用程序的应用范围,架构模式和结构已经开始变得重要起来。做电商应用时,整个销售系统,包括单品推荐、交叉推荐和历史购买推荐的代码不能都塞进根文件夹里面。 这些是React教程中未涉及到的内容。事实上,绝大多数在线程式设计教程并没有或者说讨论架构或结构,以及如何实现与框架或库相关的元内容。 虽然一旦编译完成,没有人会或者说看到这些,但是开发伙伴或代码接手方遇到一团糟的代码无疑会抓狂。
React的优点
React是两个库,这意味着其是高度可移植的。在任何地方它都可以运转——这有点儿像jQuery和Ajax。 当涉及到处置微前端和在旧系统中始终存在的过渡应用程序时,这一特点益处多多。
其与React Native的关系也不同,且改变了渐进式web应用程序的制作形式。与其他基于javascript的框架(如Ionic)不同,这些框架本质上是围绕Angular、Vue或React代码来生应用商店就绪应用,React Native则更进一步,可将代码翻译成Apple和谷歌所需的实际原生语言。
因此,React Native不会把网站伪装成应用程序,而是将其变成了或者说的应用程序——其整体性能更佳——其整体性能更佳,访问本地功能的方法也更好,比如地图、指南针、图像和设备上的摄像头等。 代码本身仍然主要是React,但是变成了适应各种移动设备的React版本。
React的缺点
作为一名深入到React领域的Angular原生开发者,本栏认为React最让人头疼的事情之一就是缺少对常用特性和功能的访问功能,比如统计数据自动绑定,以及如何仅透过将几乎所有基于javascript的库放入其中使其运转良好。
或者,采用Angular已经提供更多的可用库。唯一要记住的就是导入库。 但是,React更多的时候会依赖于第三方库,这些库之间或这些库与React之间可能相互配合,也可能适得其反。 此外,社区中也很少有关于组件设计和组件结构的讨论——或者是本栏没找对地方。随着项目的深入开展,开发人员经常会发现自己把状态推得比需要的更高,不经意就导致全局空间的污染。 Redux经常被用来解决这个问题,但是Redux并不是React,它完全是两个独立体。
图源:Unsplash
结语
值得注意的是,到目前为止,这些都只是本栏个人对库的一些观点。总的来说,这个街道社区一直都很不错,除本栏遇到的少数两个在Angular界中不常见的挑衅者。 那么,React与否圣索弗呢? 这完全取决于所面对的是哪个圈子的疯狂爱好者,所有人事情都有其特殊之处。React并不是前端解决方案的终极圣杯,但它确实非常有用。
本栏也成为资深开发者,见证了许许多多项目的花开花落,现在已经开始自学新技术以便更新升级现有的科学知识体系——而不是就此止步。 React本身也不是什么新鲜玩意儿。它只是将JavaScript、HTML和CSS打包到两个空间中的另一种转换。Angular早在初始阶段就这么做了,而jQuery甚至更早。
这个行业总是在寻找下两个最好的开发框架,但是最好的方法就是自学正确地编码并把这一点做好——因为无论什么框架、库、脚手架或者其他新奇之物,现在都在这个街道社区占据一席之地。 作为一名开发人员,代码质量取决于能以多快的速度使良好程式设计的基础适配当前的需求和环境。
最后,感谢大家阅读~
留言 点赞 发个朋友圈
我们一起分享AI自学与发展的干货
如需转载,请后台留言,遵守转载规范