我正在开发Angular应用,并在该应用中共享多个对象。这些对象必须同步并保持所有组件的当前状态。
因此,我创建了服务来使用BehaviorSubject
处理每个对象及其更改,并在需要时订阅了它。
但在某些情况下,我认为可以使用Angular路由器及其参数来实现,这使我投入了更多的时间来传递复杂的对象作为查询参数。
今天,我刚刚意识到我从未在应用程序中使用过查询参数,而且URL太简单了,这是我从未见过的。
所以我的问题是,可以吗?还是这对我的应用程序来说是一个弱点?
答案 0 :(得分:1)
在我看来,只有在URL中确实需要数据时,才将数据作为路由参数传递。如果用户可以保存URL,然后在路径中输入OK,然后输入该URL,仅使用URL即可显示在视图的相同状态。
例如,如果您有一个博客应用,并且您有路线
http://myblog-example/entry-cool?tags=cool;super_cool
如果确实需要使用标签参数(此处的标签)才能使页面正常显示,但是如果要从数据库中检索这些参数,请不要将其放在路由中。然后,您应该使用服务和可观察的(或主题)来获取它们并将其显示在页面中。