如果我可以使用结构化指令控制DOM内容,为什么要使用Route Resolver?

天才去

我正在学习Angular Route Resolvers的用法,并且从Web上的一些来源中了解到,这些用于在导航事件之后和加载组件之前执行操作。

但是,如果我可以使用结构指令控制DOM的加载,*ngIfngOnInit()在加载DOM之前执行所需的操作,那么解析器的用例是什么。

它们是高效的性能优化器吗?在特定情况下,除了使用解析器外,我别无选择吗?

(我以https://stackblitz.com/edit/angular-route-resolvers为例)。

JB Nizet

解析器之所以有用,有很多原因:

  • 在加载数据之前,页面内容和URL不会更改。因此加载失败,用户不在空白页的前面,可以再次单击该链接重试。
  • 它使模板更易于编写,因为您不必处理尚未加载的数据或部分加载的数据
  • 它使组件的代码更简单,因为组件只需要显示解析器提供的数据,而不是自己加载(如果参数更改,则重新加载)。
  • 如果一致使用,则解析程序允许使用路由器事件显示一些常规的加载指示器,而如果每个组件加载自己的数据,则可以将此代码集中在一个位置
  • 可以在需要相同数据的多个路由之间共享解析器

他们的缺点是

  • 这是另一项需要编写的服务,它会在一个或多个其他位置稀释组件的代码
  • 它会给人一种缓慢的感觉,因为在加载数据之前,页面上没有任何变化

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Angular Router:Route Resolver及其对UX的影响

什么取代了asio :: tcp :: resolver :: query?

如果要我的指令重复DOM,为什么要使用未链接的克隆DOM?

如果结构化绑定不能是constexpr,为什么可以在constexpr函数中使用它们?

一起使用babel-plugin-module-resolver

Symfony 自定义表单类型,使用 Options Resolver

是什么引起了MacOS Sierra上/ etc / resolver /的更改

如果我可以使用 SQLite 3 在 python 中组织数据,我为什么要使用类?

为什么 dig +short myip.opendns.com @resolver1.opendns.com 什么也不输出?

为什么 Net::DNS::Resolver 不返回本地主机的 IP?

我可以使用null初始化迭代器吗?如果不是,为什么?

如果可以使用镜像部署系统,为什么还要使用 Ansible

如果可以使用同步的(this),为什么还要使用ReentrantLock?

JSF 1.1之后不推荐使用API变量解析器。改用el-resolver

在 Sagemaker 中使用 tf.distribute.cluster_resolver.TPUClusterResolver( tpu_name) 的替代方案?

使用dns.resolver(pythondns)设置特定的DNS服务器

如何在发布时将Babel Module Resolver与react-native + expo一起使用?

Next.js 打字稿使用 babel-plugin-module-resolver 导入别名

无法将babel-plugin-module-resolver与expo和react-native一起使用

Unity不会使用iOS Resolver生成xcworkspace和Podfile-macOS Catalina

如何使用db-resolver为gorm v2中的多个实例配置sql连接

Autofac Dependency Resolver有时在控制器解析MVC 5时崩溃(DependencyResolutionException)

CentOS,我们可以使用哪些存储库,为什么要使用它们?

在AWS Resolver映射模板中,是否有任何方法可以从对象中删除字段?

什么是--use-feature = 2020-resolver?在Ubuntu上安装Jupyter时出现错误消息

为什么C ++ 17结构化绑定不使用{}?

我可以在我的stack.yaml中省略或为“ resolver”指定一个“虚拟”值吗?

如果我可以直接发布到Elasticsearch,为什么要使用Beats?

如果我可以简单地修复错误,为什么要使用try / catch?