Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 大规模组件订阅或单一订阅+;导出数据?_Angular_Performance - Fatal编程技术网

Angular 大规模组件订阅或单一订阅+;导出数据?

Angular 大规模组件订阅或单一订阅+;导出数据?,angular,performance,Angular,Performance,我从Angular开始,我有一些设计问题,关于可靠性和性能方面的最佳方法是什么 我有一个SettingsService,可以从后端服务器获取一些用户设置,我不想使用可观察对象将这些设置发布/发布到许多组件中 我找到了两个选项,但我不知道最好的解决方案是什么: 1) 订阅每个组件到SettingsService(我有大约15个组件需要这些设置数据,因此它将添加大量代码) 2) [下图所示]订阅1个服务(服务A)来设置服务并导出15个组件中每个组件要使用的数据,因此我编写的代码更少,只做一个子描述。

我从Angular开始,我有一些设计问题,关于可靠性和性能方面的最佳方法是什么

我有一个SettingsService,可以从后端服务器获取一些用户设置,我不想使用可观察对象将这些设置发布/发布到许多组件中

我找到了两个选项,但我不知道最好的解决方案是什么:

1) 订阅每个组件到SettingsService(我有大约15个组件需要这些设置数据,因此它将添加大量代码)

2) [下图所示]订阅1个服务(服务A)来设置服务并导出15个组件中每个组件要使用的数据,因此我编写的代码更少,只做一个子描述。(问题是,我不知道服务A中的变量是否是持久的,我的意思是,如果组件N有一个服务A的实例(具有特定的“快照”范围),并且突然一些变量发生变化,它会保持持久性吗?此选项是良好做法吗?

我试图尽可能清楚,如果我犯了一些“新手”的错误,我很抱歉

非常感谢你


如果使用行为主体,则选项1应该可以正常工作。我不能100%确定您希望如何使用选项2,因为如果您使用BehaviorSubject,这应该与选项1相同。最后,我认为选项2将消耗大量的时间,并且会产生更大的错误。如果你谈论性能,它应该是平等的。嗨@Swoox,谢谢你的回答。事实上,我是在用行为主体做这件事,我知道我必须写的代码,但我不知道用选项1或2做事情的“视角”。我认为你想得太多了,只需要用选项1开始编程。(个人观点)哈哈,没错。刚从Angular开始,我非常害怕做错事/坏习惯/低性能代码:PIn我的意见选项2不坏,但错误更严重。因为在某一点上,您需要控制传输到某个组件而不是所有组件的数据。