Angular 8里面有什么?

作者: Louise Ward
创建日期: 10 二月 2021
更新日期: 18 可能 2024
Anonim
Angular 8 有哪些新功能?哪些改变会导致你的程序崩溃? 顺便展望一下Angular 9。
视频: Angular 8 有哪些新功能?哪些改变会导致你的程序崩溃? 顺便展望一下Angular 9。

内容

Angular 8是Google Angular的最新版本-周围最好的JavaScript框架之一。在本文中,我们将介绍Angular 8的特殊之处,并向您展示如何入门。首先,简要回顾一下迄今为止该框架所发生的情况。

Angular的引入导致了Web开发的范式转变:虽然大多数库都将自己限制在为架构影响相对有限的开发人员提供支持的过程中,但Angular的开发人员却朝另一个方向发展。他们的产品迫使您使用特定的体系结构,偏差范围从困难到商业上毫无意义。实际上,大多数Angular代码在到达浏览器之前都要经过相对复杂的编译工具链。

由于Angular在Google Inc.内部和外部都取得了巨大的成功,因此发展总体上趋于稳定。这意味着破坏性代码更改很少,而每半年进行的升级则着重于使框架适应Web浏览格局的变化。


例如,在Angular 8中,将部署新的JavaScript编译器(尽管仍处于实验阶段)。它优化了生成的兼容性代码,使其明显更小,更快,但以旧版浏览器为代价。此外,还集成了Web Worker支持,以提高Angular的处理能力。简而言之,有很多值得一看的地方-因此,让我们直接潜水。

如果您想设计一个没有代码的网站,请尝试使用以下简单的网站构建器之一。为了使事情运行得更加顺利,请正确安装网络托管服务。

01.运行版本检查

Angular的工具链位于NodeJS环境中。撰写本文时,需要Node.js 10.9或更高版本–如果您发现自己使用的是旧版本,请访问Node.js网站并进行升级。以下代码显示了此计算机上的版本状态。

tamhan @ TAMHAN18:〜$节点-v v12.4.0 tamhan @ TAMHAN18:〜$ npm -v 6.9.0

02.安装Angular

Angular的工具链位于名为 ng。可以通过众所周知的NPM安装。


tamhan @ TAMHAN18:〜$ sudo npm install -g @ angular / cli tamhan @ TAMHAN18:〜$ ng版本

请仔细回答下图所示的问题。

从工具中获取版本信息非常困难–不仅语法独特,而且输出也很冗长(请参见下图)。

03.创建一个项目框架

ng 为我们生成Angular脚手架。在以下步骤中,我们要添加路由,并使用Sass进行CSS编译。如果由于某种原因部署失败,请清空工作目录,然后重新启动 ng 具有超级用户权限。

tamhan @ TAMHAN18:〜$ mkdir angularspace tamhan @ TAMHAN18:〜$ cd angularspace / tamhan @ TAMHAN18:〜/ angularspace $ ng new workertest

04.线束差速器

新版本的Angular优化了向后兼容代码以减少影响-名为的文件 浏览器列表 让您决定要支持哪些浏览器。打开 浏览器列表 并删除单词 不是 在IE 9到IE11之前。


。 。 。 > 0.5%的最近2个版本Firefox ESR尚未终止IE 9-11#要支持IE 9-11,请删除“ not”。

05. ...并查看结果

订购该项目的编译文件,切换到分发文件夹并清除不需要的地图文件。

tamhan @ TAMHAN18:〜/ angularspace / workertest $ sudo ng build tamhan @ TAMHAN18:〜/ angularspace / workertest / dist / workertest $ ls

调用树以查看结果– ng 创建各种代码文件的多个版本(请参见下图)。

06.产生一个网络工作者

Web工作人员让JavaScript进入了本机应用程序的最后一个领域:大规模并行处理任务。使用Angular 8,就可以从舒适的环境中创建Web工作人员。 ng 命令行实用程序。

tamhan @ TAMHAN18:〜/ angularspace / workertest $ sudo ng生成web-worker myworker创建tsconfig.worker.json(212字节)创建src / app / myworker.worker.ts(157字节)更新tsconfig.app.json(236字节) )更新angular.json(3640字节)

07.探索代码

ng乍一看,其输出看起来可能令人生畏。打开文件 src / app / myworker.worker.ts 在选择的代码编辑器中显示了您应该从中了解的代码 网络工作者 规格。原则上,工作人员接收消息并根据需要对其进行处理。

///参考lib =“ webworker” /> addEventListener('message',({data})=> {const response =`worker response to $ {data}`; postMessage(response);});

08.搭建脚手架

Angular应用程序由组件组成。解雇我们的网络工作者最好是在 AppComponent,它被扩展为包括针对以下内容的侦听器: 初始化 事件。目前,它将仅发出状态信息。

从“ @ angular / core”导入{Component,OnInit}; @Component({。。。})导出类AppComponent实现OnInit {title ='workertest'; ngOnInit(){console.log(“ AppComponent:OnInit()”); }}

09.不用担心缺少构造函数

经验丰富的TypeScript开发人员会问自己为什么我们的代码不使用编程语言提供的构造函数。原因是 ngOnInit 是一个生命周期事件,每当发生初始化事件时都会触发该事件–不需要与类调用相关联。

10.执行一个小的编译运行

此时,程序可以运行了。我们将从服务器内部执行它 ng,可以通过serve命令调用。这种方法的一个巧妙方面是程序可以检测到更改并即时重新编译项目。

tamhan @ TAMHAN18:〜/ angularspace / workertest $服务

看一下该图,可以在下图中看到它的实际效果。

11. ...并找到输出

ng服务 putputs其本地Web服务器的地址,通常是 http://本地主机:4200 /。打开网页并打开开发人员工具以查看状态输出。请记住 console.log 将数据输出到浏览器控制台,并使NodeJS实例的控制台保持不变。

12.开始工作

此时,我们创建了worker的实例并向其提供消息。然后,其结果将显示在浏览器控制台中。

if(typeof Worker!=='undefined'){//创建一个新的const worker = new Worker('./ myworker.worker',{type:‘module’}); worker.onmessage =({data})=> {console.log(’页面收到消息:$ {data }’); }; worker.postMessage('hello'); } else {console.log(“无工作人员支持”); }

13.探索常春藤

Angular的未来版本将使用更高级的编译器,从而产生更小的视图。当产品尚未完成时,可以通过以下方式生成启用常春藤的骨架 ng新的常春藤项目– enable-ivy。或者,如代码段所示更改编译器设置。

“ angularCompilerOptions”:{“ enableIvy”:true}

一个警告:常春藤导致惊人的尺寸减小,但是它不是免费的。该产品尚未稳定,因此不建议在生产环境中使用它。

14.尝试修改的ng处理

Angular的 ng 命令行工具在内部使用了子脚本一段时间。 Angular 8的优势在于,您现在还可以在组装和编译应用程序时使用此功能来运行自己的任务。

“ architect”:{“ build”:{“ builder”:“ @ angular-devkit / build-angular:browser”,

一个整洁的应用程序 ng 脚本涉及将应用程序直接上传到云服务。 Git存储库提供了一个有用的脚本,可将您的工作上传到Firebase帐户。

15.享受更好的迁移

从Angular 1.x(也称为AngularJS)迁移的开发人员在使导航器在“组合”应用程序中正常工作方面遇到了很多问题。新的统一位置服务旨在使此过程更加顺畅。

16.探索工作区控件

大型项目受益于动态更改工作空间结构的能力。这是通过Angular 8.0中引入的新Workspace API来完成的-此步骤随附的代码片段提供了有关行为的快速概述。

异步函数show(){const host =工作区。 createWorkspaceHost(new NodeJsSyncHost()); const工作区=等待工作区。 readWorkspace(“路径/到/工作区/目录/”,主机); const project = workspace.projects。 get(‘my-app’); const buildTarget = project.targets。 get(‘build’); buildTarget.options.optimization = true;等待workspaces.writeWorkspace(工作区,主机); }

17.加快流程

构建大型JavaScript代码库变得乏味。 AngularJS的未来版本将使用Google的Bazel构建系统来加速该过程-不幸的是,在撰写本文时,它还没有准备就绪。

18.避免行尸走肉

即使Google非常注意不要破坏代码,但由于不再需要某些功能,因此仅需删除它们。查看此折旧清单,以了解有关应避免使用的功能的更多信息。

19.查看更改日志

与往常一样,一篇文章永远都不可能对整个发行版都公道。幸运的是,此更改日志提供了所有更改的详细列表,以防万一您想查看特别喜欢的功能的脉搏。

准备好许多文件上传到您的网站了吗?将它们备份到最可靠的云存储中。

本文最初发表在“创意网站设计”杂志上 网站设计者.

用文章给你
编写更好的CSS的6个步骤
阅读更多

编写更好的CSS的6个步骤

我们都去过那里。慢慢打开最新C 样式的 tyle .c 文件时,您会发现它的长度为2,000行,您需要更改的类在中间。您一个人,很害怕,不知道是否可以编辑该课程,因为它可能会使完全不同的页面上的内容翻倒。作为最后的选择,您转到文件的末尾并创建一个新类,以添加到已经有七个其他类的元素上。对于使用C 足够长时间的开发人员来说,这是一种常见的体验(有关C 的灵感,请参见我们最喜欢的C 动画示例)。因此,...
图解版式将字体放入框架中
阅读更多

图解版式将字体放入框架中

印刷术可以采用多种形式-从涂鸦字体到复古印刷术,字母的艺术一直在奉献。在这里,插图的灵感成为中心舞台,因为芬兰设计师Emil Bertell利用电影等产生的影响来创作这种插图字体。居住在芬兰赫尔辛基的插画家埃米尔(Emil)多年来为“插图字母”系列创作了这些引人注目的设计。设计师从好莱坞老电影,动物和动臂音箱中汲取影响力,并尝试色彩和形式,从而产生了令人鼓舞的结果。人物肖像非常酷,使用迪斯科舞会作...
Cinema 4D R16的新功能揭晓
阅读更多

Cinema 4D R16的新功能揭晓

Maxon的Cinema 4D已经慢慢建立了声誉,它是一种非常强大,可靠且可靠的解决方案,可以满足许多3D艺术家的需求,并且此版本并不令人失望:Maxon引入了一系列新功能,错误修复和工作流程更改。价格尚未确定,但我们确实知道今年的版本将改变游戏规则。新的运动跟踪器是第一个新功能-真正令人印象深刻的功能-新的运动跟踪器。这是一款全动态跟踪器和3D摄像机求解器,具有特别直观的工作流程。借助自动创建和...