Angular中文博客

分享让你更聪明

[译2018]Angular 版本 7 — CLI 提示、虚拟滚动、拖放等

浏览:64次 评论:0次 日期:2024年10月18日 22:40:27 作者:管理员

Angular 7.0.0 版本已发布!这是一个跨越整个平台的主要版本,包括核心框架、Angular Material 和具有同步主要版本的 CLI。此版本包含我们工具链的新功能,并已启用多个主要合作伙伴的发布。

如何更新到v7

请访问update.angular.io以获取有关更新应用程序的详细信息和指南,但由于我们在 v6 中所做的工作,更新到 v7 应该是大多数开发人员的一个命令:

ng update @angular/cli @angular/core

v7 的早期采用者报告说,这次更新比以往任何时候都快,许多应用程序更新时间不到 10 分钟。

CLI 提示

现在,CLI 将在运行ng newng add @angular/material等常用命令时提示用户,以帮助您发现路由或 SCSS 支持等内置功能。

CLI 提示已添加到Schematics中,因此任何发布 Schematics 的包都可以通过向 Schematics 集合添加x-prompt键来利用它们。

// schematic.json
"routing": {
  "type": "boolean",
  "description": "Generates a routing module.",
  "default": false,
  "x-prompt": "Would you like to add Angular routing?"
},

应用(Application)性能

我们继续关注性能,分析了整个生态系统中的常见错误。我们发现许多开发人员都包括reflect-metadata生产中的 polyfill,仅在开发中需要。

为了解决这个问题,v7 的部分更新将自动从您的polyfills.ts文件中删除它,然后在 JIT 模式下构建应用程序时将其作为构建步骤包含在内,默认情况下从生产构建中删除此 polyfill。

对于 v7,我们还默认新项目可以利用 CLI 中的捆绑预算。当初始捆绑包超过 2MB 时,新应用程序将发出警告,超过 5MB 时将出错。这些预算很容易在angular.json.

// angular.json 
"budgets": [{
  "type": "initial",
  "maximumWarning": "2mb",
  "maximumError": "5mb"
}]

这些预算与可以向利用 Chrome数据保护程序功能的用户显示的警告保持一致。

Angular Material 和 CDK

Material Design 在 2018 年进行了重大更新。更新到 v7 的 Angular Material 用户应该会看到细微的视觉差异,反映出 Material Design 规范的更新。

新添加到 CDK 中,您现在可以通过导入DragDropModuleScrollingModule来利用虚拟滚动和拖放。

虚拟滚动(Virtual Scrolling)

虚拟滚动根据列表的可见部分从 DOM 加载和卸载元素,从而可以为具有非常大的可滚动列表的用户构建非常快速的体验。


// dragdrop.html 
<cdk-virtual-scroll-viewport itemSize="50" class="example-viewport">
  <div *cdkVirtualFor="let item of items" class="example-item">{{item}}</div>
</cdk-virtual-scroll-viewport>

了解有关虚拟滚动的更多信息

拖放(Drag and Drop)

CDK 中现已提供拖放支持,包括用户移动项目时的自动渲染以及用于重新排序列表 ( moveItemInArray ) 和在列表之间传输项目 ( transferArrayItem ) 的帮助器方法。

// dragdrop.html
<div cdkDropList class="list" (cdkDropListDropped)="drop($event)">
  <div class="box" *ngFor="let movie of movies" cdkDrag>{{movie}}</div>
</div>
// dragdrop.ts 
drop(event: CdkDragDrop<string[]>) {
    moveItemInArray(this.movies, event.previousIndex, event.currentIndex);
}

阅读有关拖放的更多信息

改进了选择的可访问性

通过在mat-form-field内部使用本机select元素来提高应用程序的可访问性。本机选择具有一些性能、可访问性和可用性优势,但我们保留了mat-select ,它可以完全控制选项的呈现。

了解有关mat-selectmat-form-field的更多信息

Angular 角元素

Angular Elements 现在支持使用自定义元素的 Web 标准进行内容投影。

<my-custom-element>This content can be projected!</my-custom-element>

合作伙伴发布

Angular 的成功在很大程度上要归功于社区,为此,我们一直在与最近启动的几个社区项目合作。

文档更新

我们一直在努力改进我们的指南和参考材料。 angular.io 上的文档现在包含Angular CLI 的参考材料

依赖项更新

我们更新了对主要第三方项目的依赖关系。

 Ivy又咋啦?

我们一直在继续致力于一项名为 Ivy 的新计划——我们的下一代渲染管道。 Ivy 目前正在积极开发中,不属于 v7 版本的一部分。我们开始验证与现有应用程序的向后兼容性,并将在未来几个月内准备就绪后立即宣布选择加入 Ivy 预览版。

请关注此博客、 TwitterYouTube以获取最新信息。

文章来源地址:https://blog.angular.dev/version-7-of-angular-cli-prompts-virtual-scroll-drag-and-drop-and-more-c594e22e7b8c

发表评论