Angular 15.1有什么新特性?
Angular的发展是稳定的,每六个月更新一次主版本,每个月更新一次小版本,根据需要每周更新一次补丁版本。
这是Angular 15发布后的第一个小版本。虽然这是一个小版本,但仍然有一些值得注意的更新。
自动关闭的标签
这可能不是什么大问题,但是喜欢编写更简洁代码的开发人员会很高兴地了解到,Angular 15.1现在支持自关闭标记。
这意味着我们在使用组件之前必须做的事情:
<组件> < /组件>
现在可以替换为以下内容:
<组件/ >
简单的改变,但对开发人员体验的改进。
CanMatch警卫
这个添加很有趣,因为它可以改变配置路由的方式。让我们考虑下面的例子:
const routes: Route[] = [{
路径:/用户,
canMatch: [() => inject(LoginService).isLoggedIn()],
loadChildren: () => import('./user-page/user-details.module')
});
CanMatch将在任何时候被调用/用户访问,这可以防止延迟加载指定的模块。
这是CanLoad警卫已经在做了,但抓到CanLoad它不会再被调用在代码加载后,这意味着我们需要添加一个CanActivate守卫在它上面,如下图所示:
const routes: Route[] = [{
路径:/用户,
canLoad: [() => inject(LoginService).isLoggedIn()],
canActivate: [() => inject(LoginService).isLoggedIn()],
loadChildren: () => import('./user-page/user-details. module ')
});
CanMatch修复该行为,因为它的工作方式就像组合CanLoad + CanActivate.
另一个有趣的行为CanMatch如果它对于给定的路由返回false,另一个相同名称的路径仍然可以匹配,这消除了在我们的守卫中重定向的需要。
这里有一个例子:
const routes: Route[] = [
{
路径:/用户,
canMatch: [() => inject(LoginService).isAdmin()],
loadComponent: () => import('./admin-page/admin-details.component')
},
{
路径:/用户,
canMatch: [() => inject(LoginService).isLoggedIn()],
loadComponent: () => import('./user-page/user-details.component')
}
]
可以看到,两条路由都配置为/用户路径,但如果用户是管理用户,他们会登陆到AdminDetails组件,如果他们是普通用户,他们会登陆到UserDetails组件。
CanLoad现在正式弃用了CanMatch.
作为旁注,这些例子使用函数警卫独立组件的惰性加载,二自Angular 14以来对框架的最新添加.
的完整的发行说明是可用的查看有关Angular 15.1的更多细节。
我叫betway必威滚球.我是Angular的谷歌开发专家,也是角训练在那里我帮助web开发团队学习并熟悉Angular。
如果您在网页开发方面需要任何帮助,请随时与我们联系!
如果你喜欢这篇文章,请鼓掌或分享。你的帮助我永远感激。你也可以点击这里订阅我的文章,并订阅我的每日Angular通讯接收有用的日常提示。