新角15是什么?

发表在
6分钟阅读 2022年11月30日

- - -

角15 2022年11月初发布。这个版本带来了很多新特性,我们多被用于与先前的角的主要版本。

让我们深入了解一些重要的新特性的一个接一个:

指令构成API

角15日之前,我们可以使用继承来创建一个扩展另一个指令。而继承的作品,更灵活的使用构成相反,这正是角15允许我们做什么。

这是如何工作的呢?如果我们想要创建一个组件或指令,自动拥有一个或多个其他指令应用,我们可以使用下面的语法:

@ component ({
选择器:“管理页面”,
模板:“admin-menu.html”,
hostDirectives:(MenuBehavior),
})
出口类AdminMenu {}

在上面的示例中,该指令MenuBehavior总是被应用到AdminMenu组件,不需要添加任何选择器组件的HTML元素。

它甚至可以输入和输出转发给这些指令使用下面的语法:

@ component ({
选择器:“管理页面”,
模板:“admin-menu.html”,
hostDirectives: [{
指令:MenuBehavior,
输入:[' menuId: id '),
输出:“menuClosed:关闭”,
}),
})
出口类AdminMenu {}

上面的代码意味着id属性管理页面元素变成了menuId输入的MenuBehavior指令。同样,关闭的输出管理页面元素变成了menuClosed的输出MenuBehavior

结果,AdminMenu组件可以使用如下所示:

<管理页面id = " top-menu”(关闭)=“logMenuClosed () " >

正如你所看到的,MenuBehavior指令不是“可见的”HTML。所以不需要额外的选择器。

完整的文档的更多信息可以在这里找到指令构成API

角认证考试

稳定独立的api

独立的组件API中引入角14作为一个开发者预览版已经完全稳定的开发者预览版。

注意,您可以生成一个独立的组件与新角CLI选择:

ng g MyComponent组件添加——独立

这个特性完全使module-less角应用程序。例如,我们可以引导这样的应用程序使用一个独立的组件使用下面的语法:

bootstrapApplication (MyStandaloneAppComponent);

这一变化的另一个后果是可以没有延迟加载模块。相反,我们可以延迟加载很多航线使用下面的语法:

出口const appRoutes:路线= [{
路径:“懒”,
loadChildren:() = >进口(“。/懒惰/ lazy.routes”)
不要犹豫(路线= > routes.lazyRoutes)
});

lazyRoutes被宣布lazy.routes.ts像这样:

从@angular /路由器的进口{路线};
进口{LazyComponent}”。/ lazy.component ';
进口{LazyDashboardComponent}”。/ lazy-dashboard.component ';

出口const lazyRoutes:路线= (
{路径:“组件:LazyComponent},
{路径:“仪表板”,组件:LazyDashboardComponent},
];

不涉及模块!

图像优化指令(NgOptimizedImage)

图片是至关重要的,当它涉及到任何web应用程序的性能。但不幸的是,我们可以尝试优化Javascript代码并保存kb,只看到我们的努力被大规模破坏图片花了太多时间去下载。

图像指令旨在帮助。

它所做的:

  • 聪明的延迟加载:图片看不见的用户在页面加载后,用户向下滚动到页面加载部分。
  • 优先级重要的图片:首先加载必要的图像(例如标题横幅)
  • 形象优化配置工具:如果您正在使用一个CDN,指令将自动选择合适的图像大小CDN,优化下载大小基于多少像素的图像将显示在屏幕上。
  • 内置的错误和警告:除了上面的内置的优化中,指令也有内置的检查,以确保开发人员推荐的最佳实践在图像标记。

的指令可以使用ngSrc属性而不是src:

< img ngSrc = "形象。png " >

NgOptimizedImage指令是@的一部分角/常见模块,就像ngForngIf,所以它已经工具包的一部分如果你使用这些指令。

它也可以被用作独立的指令没有进口CommonModule。它的官方文档和更多信息背后的魔力,指令可以在这里找到

更快更好的堆栈跟踪调试

堆栈跟踪调试代码更快至关重要。所以角团队一直致力于以更多方式错误和堆栈跟踪更集中,明确的和相关的。

堆栈跟踪,包括区。js,不帮助我们我们编写的代码:

角,只有相关的部分目前的堆栈跟踪显示:

很快,它会得到更好的,与上面的最后一行被替换为:

在<按钮(点击)= " submit ()" > (app.component.html: 4)

这样,我们立刻就会知道这行代码引发了这个问题。

角CDK列表框

有几种方法可以使用HTML创建下拉,选择项列表,从选择使用标签完全自定义选项divul

我们获得的定制(样式、验证规则)通常成为损失的可访问性。

通过使用@angular / cdk /列表框,我们得到的所有预期的行为易访问的经验,包括双向布局支持、键盘交互,并集中管理:

一些例子可以在这里找到

语言服务改进

角语言服务精益求精,所有开发人员转化为更好的IDE体验。

角15了自动组件进口当一个组件用于第一次和没有进口前(作为一个独立的组件或模块)。

功能的路由器警卫

这行代码改变我们思考的方式路由器警卫在角:

const路线= {
路径:“管理”,
canActivate:[() = >注入(LoginService) .isLoggedIn ())
};

不需要创建一个特定的类,它实现了canActivate接口。一个简单的函数可以做现在这份工作!

同样,延迟加载与独立的组件在组件级别可以使用下面的语法:

{
路径:“懒”,
loadComponent:() = >进口(“。/ my.component”) (m = > m.MyComponent),
}

上面的例子中可以进一步简化组件定义时默认导出的文件。这就是所谓的auto-unwrap短和结果在以下配置:

{
路径:“懒”,
loadComponent:() = >导入(’。/ my.component '),
}

日期的默认格式选项管道

最后,因为大多数应用程序使用一个一致的日期格式全屏幕和组件,我们现在可以定义默认格式一劳永逸地用一个新的注射标记DATE_PIPE_DEFAULT_OPTIONS:

供应商:[
{
提供:DATE_PIPE_DEFAULT_OPTIONS,
useValue: {dateFormat:“shortDate”}
}
]

从角团队官方发布更多的信息可以在这里找到:https://blog.angular.io/angular-v15-is-now-available-df7be7f2f4c8

我的名字是betway必威滚球。我是谷歌开发者角度,专家顾问和教练角训练我帮助web开发团队学习和熟悉角。

如果你需要任何帮助web开发,随时取得联系!

如果你喜欢这篇文章,请为它鼓掌或分享它。我总是感激你的帮助。你也可以订阅中这里

Baidu
map