使用服务共享数据可以代替路由参数吗?

时间:2019-01-11 10:40:06

标签: angular

我正在开发Angular应用,并在该应用中共享多个对象。这些对象必须同步并保持所有组件的当前状态。

因此,我创建了服务来使用BehaviorSubject处理每个对象及其更改,并在需要时订阅了它。

但在某些情况下,我认为可以使用Angular路由器及其参数来实现,这使我投入了更多的时间来传递复杂的对象作为查询参数。

今天,我刚刚意识到我从未在应用程序中使用过查询参数,而且URL太简单了,这是我从未见过的。

所以我的问题是,可以吗?还是这对我的应用程序来说是一个弱点?

1 个答案:

答案 0 :(得分:1)

在我看来,只有在URL中确实需要数据时,才将数据作为路由参数传递。如果用户可以保存URL,然后在路径中输入OK,然后输入该URL,仅使用URL即可显示在视图的相同状态。

例如,如果您有一个博客应用,并且您有路线

http://myblog-example/entry-cool?tags=cool;super_cool

如果确实需要使用标签参数(此处的标签)才能使页面正常显示,但是如果要从数据库中检索这些参数,请不要将其放在路由中。然后,您应该使用服务和可观察的(或主题)来获取它们并将其显示在页面中。