发表在

角训练

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

Angular认证考试

另一个有趣的行为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通讯接收有用的日常提示。

使用Medium应用程序

一个写着“在应用商店下载”的按钮,如果点击它将引导你进入iOS应用商店
一个写着“开始吧,谷歌Play”的按钮,如果点击它,就会引导你进入谷歌Play商店
Baidu
map