Angular 开发团队近日在

时间: 2019-04-15阅读: 443标签: Angular

本文由码农网 –
小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!

开发团队使用命名约定将 Web 代码与移动代码分开,开发人员可以使用 .tns
指定 NativeScript 代码,而 Web 代码则不使用 .tns 扩展。

Angular
作为一款优秀的前端框架,自诞生之日起,就致力于面向前端开发者提供一整套全功能解决方案。与其他流行框架所追求的理念不同,Angular并非作为一款可以并入
Web
应用程序的轻量级框架而生,而是设计为:包含了一个完整的工作流,用于从项目创建开始,持续地维护并更新你的应用程序

从技术上讲,iOS、Android和Windows
Phone上的移动app使用了不同的编程语言进行编码。iOS
app使用Objective-C,Android app使用Java,而Windows Phone
app使用.NET。但是,掌握一定量的JavaScript、CSS和HTML知识,你就可以构建超棒的移动app。因此,在本博客中,我们将讨论用于开发移动app的顶级JavaScript框架。

目标是尽可能多地共享代码,并将特定于平台的代码分解为单独的文件。

2019对于 Angular来说意义非凡,因为其包含了Ivy 等功能的全新版Angular 8
将于本年内正式发布。尽管 Angular 技术团队仍没有对外公布 Angular 8
正式版发布日期,但其beta版在本月上线已几乎没有悬念。Angular
8的发布近在咫尺!

对于Web开发而言,JavaScript是一个有前途的编程语言,并且在不久的将来它将依然在这个领域大放光彩。JavaScript在移动app开发上也有同样的影响吗?让我们一起来看看ValueCoders研究发现的针对移动app开发的前9个JavaScript框架。

开发团队还在 Angular CLI 中为 nativescript-schematics
提供支持,以创建新的代码共享项目,或转换现有的 Web
项目以启用代码共享,并将现有组件和模块创建或转换为代码共享格式。 

那么,在 Angular 8 中,我们可以期待些什么?

1)PhoneGap / Cordova

PhoneGap(Apache
Cordova的发行版)是一个软件开发框架,可帮助重用你现有的Web开发技能,从而快速构建使用HTML,CSS和JavaScript的混合移动应用程序。因此,确切的说这并非是JavaScript框架。但是,在开始之前,了解PhoneGap很重要。

PhoneGap是Web应用程序代码和移动操作系统API之间的媒介。此图将帮助你更好地理解:

图片 1

在PhoneGap的帮助下,你可以使用用JavaScript,HTML和CSS编写的相同代码,并为Android和iOS等移动操作系统生成API。

除了PhoneGap,还有一些框架可以帮助将JavaScript文件转换为移动API。Xamarin,Ionic,Corona就是这样的框架。

图片 2

Angular 8 中有什么新功能

2)Titanium

Appcelerator的Titanium是一个开源的应用程序开发平台,允许你使用Web技术,如HTML,JavaScript和CSS创建原生app(移动的和桌面的)。Titanium
Mobile
SDK是当今最流行的跨平台移动开发解决方案之一,拥有超过916109名移动开发人员和使用Accelerator支持app的460,587,474个设备。

下面是Titanium的工作原理:

图片 3

更多细节可查阅博客详情

尽管大多数开发者都在关注Ivy,但其实 Angular 8
中还是有很多值得称道的亮点:

3)jQuery Mobile

jQuery Mobile框架将“write less, do
more”的理念提升到一个新的水平。它是用于移动的构建应用程序或移动友好网站的顶级JavaScript框架之一。

图片 4

jQuery Mobile支持许多与现代平台如Android,iOS乃至最早的平台,如Opera
Mini和Nokia Symbian兼容的用户界面。在PhoneGap的帮助下,你可以将jQuery
Web app代码集成到交互式iOS或Android应用程序。

(文/开源中国)    

l JavaScript中的差异化加载

4)Sencha Touch

Sencha Touch(类似于Ext
JS)被认为是为开发人员创建快速和令人印象深刻的移动应用程序提供最佳解决方案的唯一框架,且这些应用程序可在Android,iOS,Kindle
Fire等平台上运行。它带有大量创造性和有用的组件,可高效地工作于所有类型的移动应用程序。下面就粗略地看一看功能。

这里是上述四个框架的特征比较

图片 5

作为构建过程的一部分,Angular
CLI生成的新应用程序现在将包含用于旧版JavaScript(ES5)和现代JavaScript(ES2015
+)的单独软件包。该包在客户端中实现差异化加载,以提高浏览器的加载速度和传输间隔时间(TTI)。这是一个好消息,意味着支持ES2015的浏览器将能够下载更小、更高效的应用程序包,而这些应用程序包的加载速度和渲染速度都比以往更快。

5)React Native

如果你喜欢Native移动应用程序,那么主要有两个选项——Xamarin和React
Native。Xamarin允许你只编写相同类型的代码,而本地编程包括类似的界面设计工具和类似的调用。

另一方面,React
Native(来自Facebook)对本地app采用完全不用的开发路径。它使用JavaScript代码,类似CSS的样式表和所有太熟悉的类似HTML的标签来布局。这里有一个图表可以清楚地了解React
Native的受欢迎程度:

图片 6

如果你的团队已经React友好,那么React Native可能是一个不错的选择。

l Ivy (预览版)视图引擎抢先试用

6)Meteor

Meteor是另一个JavaScript框架,可以帮助你开发交互式移动应用程序。Meteor不仅允许你的JavaScript代码用于移动应用,还可以让你持续控制你的app。使用此功能,你可以更新JavaScript代码而无需开发人员的帮助,并使用热代码推送功能以便于立即将更改部署到所有移动平台上的用户。

Meteor(version:1.0)的另一个特点是它通过在手机内部存储器中实现其miniMongo数据库来维护数据的本地副本。此外,所有的电话到服务器数据通信和同步由Meteor提供。(miniMongo是MongoDB
API的JavaScript实现。)下面是架构:

图片 7

您可在应用程序中开始使用Ivy渲染器,并向Angular团队提供使用反馈,以便其及时做出优化和修复。

7)NativeScript

NativeScript是一个用于从单个代码源构建多平台本机移动应用程序的Telerik发明。
NativeScript站点和GitHub页面将运行时描述为授权开发人员利用JavaScript和TypeScript(甚至Angular
2.0)去构建Android,iOS和Windows Phone的本机app,并在平台上提供代码。

下面是NativeScript遵循的架构:

图片 8

l Angular Router的向后兼容模式

8)Rachet

Rachet是用于移动app开发的顶级JavaScript框架中的另一个重要元素。它旨在为开发人员和设计人员提供构建移动Web
app的框架。该框架由提供Bootstrap框架的同一团队创建,这保证了Rachet的高质量。无论你是旨在Android,iOS,还是两者,Ratchet
2.x都行。

图片 9

Angular 添加了向后兼容模式,以降低大型项目的升级成本。Angular
Router将可以使用 $ route APIs
在现有的Angular应用程序中,选择延迟加载部分 Angular
1.x应用程序。在理想的情况下,我们甚至可以立即将Angular
1.x应用程序升级到Angular 2+。

9)Mobile Angular UI

顶级移动JavaScript框架之一是Mobile  Angular
UI。如果你是Angular迷,那么这个框架绝对适合你。它提供Bootstrap
3遗漏的必要的移动组件。切换,覆盖,可滚动区域,侧边栏,绝对定位不弹跳滚动的顶部和底部导航栏,是一些要提到的功能。

然而,随着Angular 2的发布,概念略有改变。所以对于Angular
2的崇拜者而言,Onsen UI 2.0也是一个不错的选择。

然而,现实并非如此。直到今天,还有大量传统的Angular应用程序仍在为企业提供服务。而这些企业没有选择升级的原因很简单:它们运行良好,并且在完成重写时无需太多投入。

写在最后

选择合适的JavaScript框架用于移动开发,从来不在于特定框架可以提供的功能数量。而是在于框架的真正功能,以及该功能如何在你的移动app开发项目中被合理应用。因此,根据你的项目需要选择JavaScript框架用于移动开发以便于节省时间和成本。

然而,Angular
1.x的时代已经结束,之后不会有任何新的更新,直到2021年6月30日。因此,对于从事大型Angular
1.x应用程序开发的团队,现在正是选择升级的最佳时间

l 改良的Web Worker绑定方式

Web
Worker是编写主线程运行代码的好方法,可用于提高应用程序的速度和并发性。为了达到这一目标,Angular团队在
CLI 中添加了改良的 Web Worker绑定支持。

l 可选的信息共享机制

为了有效收集您的反馈,更好地建设
Angular社区,Angular团队在CLI中添加了可选的信息共享机制。在您同意的情况下,将开始收集您的命令行和构建速度等匿名信息。

l 依赖关系更新

与往常一样,Angular团队正在更新对TypeScript、RxJS和Node等工具的依赖关系,以便与
Angular 生态系统的其余部分保持同步。

Angular Ivy 是什么?

作为下一代 Angular
的视图引擎,Ivy的出现旨在彻底缩减代码尺寸并增强系统灵活性。与目前的Angular
View Engine相比,Ivy具有以下优势:

通过 Angular
编译器生成的代码现在将更容易让开发者阅读和理解项目重建时间将明显加快有效减少了负载大小,浏览器用于下载和解析应用程序的时间将更短更好的模板类型检查,以便您在项目构建初期,就可捕获更多BUG,以防止用户在运行时遇到它们

除此之外,Angular
Ivy与现有的Angular应用程序广泛兼容。因此,在理想的情况下,您将无需更改应用程序即可获得Ivy的全部支持。这也是为什么使用Angular
8和Ivy构建当前的Angular应用程序会更加便利。

Ivy(预览版)可能存在的问题

目前已知的是,Ivy 的国际版和Angular
Universal版尚未完全兼容
。当然,如果您在开发过程中遇到任何使用BUG,请立即向Angular技术团队反馈,以便他们能够及时解决问题并将您的建议作为
Ivy 正式版的一部分。

如果您的Angular应用程序支持多语言或使用服务器端呈现数据,请不要指望它能与Ivy完美结合。除此之外,用户可能遇到的另一个问题就是Angular
Material,目前来看,使用Angular Material的应用似乎与即将发布的Angular
8预览版Ivy不太匹配。

Angular 8 对 Web Worker 的支持

对于那些对Web Worker 还不熟悉的开发者来说,Web
Worker标志着前端开发中的一项重要创新,在此之前,所有 Web
应用程序仅限于使用单线程。而随着 Web Worker
的出现,可以将CPU分配到单独的硬件线程中,使浏览器环境拥有多线程,从而提升项目开发效率。

在Angular 8更新之前,使用 Web
Worker需要注意的问题是:在worker中运行的代码不能与应用程序的其余部分位于同一JavaScript脚本文件中。它必须是分开的。因此,对于曾经希望借助Angular
CLI等工具,自动将JavaScript文件拆分、绑定到更少文件夹下的效果往往不佳。而Angular
8的新特性之一便是改进了使用Angular
CLI捆绑WebWorker的支持,这项改进意味着您将走向多并发、自动化的Web
Worker之路。

Angular 8 对 TypeScript 的支持

关于 Angular 8
中的依赖更新,包括了对Angular依赖项和最新版本的更新,如RxJS和TypeScript等框架。这看起来似乎是一个微小的改进,但却同样受欢迎,特别是TypeScript部分。

Angular 8 的性能提升

虽然 Angular 8
带来了很多令人称赞的功能,但是真正促使我们升级的很大一部分原因取决于其性能的提升!为证实这一点,我们将对
Angular 7.2 和Angular 8.0.0-beta.7 进行全面对比。

该性能测试是基于ng new创建的新应用程序运行,并使用ng build
–prod构建的。测试本身使用了Chrome的审核标签完成,通过 “Applied Fast
3G,4X CPU Slowdown” 的设置来模拟在移动设备上运行。

Angular 7.2

使用Angular 7.2的正式版本生成main.js的大小为240KB。具体数据如下图:

Angular 8.0.0-beta.7

Angular 8 beta版本的main.js文件大小与Angular
7.2相同:240KB。由此可见,文件大小没有任何改变,但让我们对比一下性能数据:

Angular 8 看起来更棒!相对于Angular 7.2,获得了相当不错的性能提升。

于是,在 Angular 8 中,我们可以得到些什么

正如我们所看到的,Angular 8的新增特性除 Ivy
之外并不是很亮眼,尽管这些特性非常好用,但对于大多数应用程序来说并不重要。

基于这一点,您应该将应用程序升级到Angular 8,还是坚持使用Angular
7?毫无疑问,你应该升级它们。即便功能上没有任何大的重大更新,但通过
Angular 8 新增的差异化加载,您将获得显著的性能提升。

更重要的是,升级到Angular 8将确保您的应用程序为Ivy做好准备,即便目前
Ivy只是Angular 8提供的一个可选预览。如果您的应用程序需要兼容
Ivy,那么最好从现在开始尝试。

或者,您也可以选择一条更加快捷且简便的方式,比如使用一款相当成熟的商业化开发工具——WijmoJS。这样,您就不必考虑项目中前端框架的兼容性和版本更新问题,因为它不但同时兼容了Angular、React、Vue、TypeScript和Ionic
等框架,还时刻紧随技术潮流,第一时间保持对框架最新版本的全面支持。

来自:葡萄城官网本文由葡萄城翻译并发布