Angular v4:我们将数据存储在服务或组件中还是两者都存储?

2024-02-03

Angular v4:我们将数据存储在服务或组件中还是两者都存储?

在查看了相当多的教程以及阅读了 Angular 的文档之后,我仍然不清楚这个主题。

https://angular.io/tutorial/toh-pt2 https://angular.io/tutorial/toh-pt2Angular 的教程清楚地显示了组件中存储的数据。

https://angular.io/guide/architecture#services https://angular.io/guide/architecture#servicesAngular 的体系结构 > 服务部分显示了具有数据数组的服务的代码(这正确吗?)。

如果我们将数据存储在组件中,我们会大量使用 @Input 和 @Output 在子组件之间移动数据(假设我们希望这些数据在前端),但是当我们使用路由时,这会带来问题,我们需要从路由器加载的新组件 -出口对我们的服务进行新的调用,以承诺对我们的服务器进行 API 调用以保存数据。在这种情况下,我们可能会有 2 个组件保存相同的数据 - 但它们可能不匹配。

如果我们将数据存储在服务中,我们将大量使用我们的服务来检索数据,并操作数据(假设我们希望在前端使用这些数据),这样我们的服务保存一组数据,并且每个组件可以随时调用服务数据以获得一致数据。

--

存储数据的正确方法是什么? 不建议选择其中之一吗?


一般来说,如果许多组件使用相同的数据,您希望将数据存储在服务中。这样,就可以非常轻松地从应用程序的所有不同部分访问相同的数据。如果一个组件修改了服务中的数据,那么所有使用该数据的组件都会修改该数据,这通常非常有帮助。但是,有时,如果您只需要将数据从一个组件发送到另一个组件(其中一个组件是另一个组件的父组件),则没有必要。在这种情况下,建议使用输入/输出。

如果你不需要在各个组件之间发送特定的数据,那么将数据存储在组件中是完全可以接受的!请记住,除非您使用输入/输出,否则无法从其他组件访问它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular v4:我们将数据存储在服务或组件中还是两者都存储? 的相关文章

随机推荐

  • 在 flutter v2.5 中迁移强调色

    在 flutter 2 5 更新后 我的主题数据有点损坏并且不再接受accentColor 我查看了文档 发现它被 重命名 为 colorScheme secondary 但无论我如何尝试 我都无法让它为我工作 这是我当前的代码 class
  • 使用正则表达式仅从列表中提取不包含重复字母的单词

    我有一个很大的单词列表文件 每行一个单词 我想过滤掉重复字母的单词 INPUT abducts abe abeam abel abele OUTPUT abducts abe abel 我想使用正则表达式 grep 或 perl 或 pyt
  • 将 RRULE 解析为可读文本?

    我正在寻找一个库 php 或一些伪代码来将 Ical RRULE 解析为可读文本 例如谷歌日历 RRULE FREQ MONTHLY INTERVAL 1 BYDAY 1FR 3FR 5FR gt Monthly on Friday of
  • 如何处理 C++ 接口中的单元

    我目前正在设计一个 API 我希望用户能够编写如下代码 PowerMeter forceVoltage 1 mV PowerMeter settlingTime 1 ms 目前我们使用如下定义来做到这一点 define mV 1 0e 03
  • 如何向 Django 管理中的字段添加可点击链接?

    我有这个 admin py class LawyerAdmin admin ModelAdmin fieldsets Name fields last first firm name firm url school year graduat
  • WCF服务继承

    我有一个非常复杂的服务主机 其中包含多个 DUPLEX 服务 它们提供了一些常见的功能 连接 断开 保持活动等 但除此之外 它们还各自提供了非常具体的功能 我的所有服务都继承自一个公共基类 抽象 因此 我还负责客户端应用程序的一部分 我希望
  • ImageMagick 和 GraphicsMagick 有什么区别?

    我发现自己正在评估这两个库 除了 GraphicsMagick 的比较之外 我发现 ImageMagick 仍然有更新 而且看起来两者几乎相同 我只是想用 C 进行基本的图像操作 即图像加载 过滤器 显示 在这些库之间进行选择时我应该注意什
  • 基于三列的 awk 子集文件方法

    我有一个 BED 格式的文件 input bed less input bed A 678 934 0bb6fdb5 0 A 715 986 8bc17666 0 A 716 1029 065f9d32 0 A 769 1367 572ae
  • 如何向Matlab提供它想要的旧gcc版本?

    我的电脑上有 Ubuntu 10 10 和 gcc 4 4 4 我尝试编译一些使用 CUDA 的 mex 文件 但收到以下错误消息 gt gt cns build hmax compiling home leMe hmax cns sour
  • 如何正确理解“光标”

    我正在尝试将光标应用于我的应用程序 但是 该文档对我来说不够清晰 Google 对光标的描述http code google com appengine docs python datastore queries html Query Cu
  • 在 C++ 中使用友元类与添加访问器进行单元测试?

    添加返回对象内部状态的函数进行单元测试是否比使测试类成为友元更好 特别是 当除了单元测试之外的功能没有用处时 95 的时间单元测试应该只测试类的公开暴露的表面 如果您正在幕后测试某些内容 那就是测试实现细节 这本质上是脆弱的 因为您应该能够
  • 如何通过 JavaScript 在锚标记中导航 href

    有没有一种简单的方法可以让 JavaScript 模仿用户单击页面上的锚标记 这意味着需要设置 Referrer Url 仅设置 document location href 不会设置 Referrer Url a href http ex
  • 有没有办法在Windows上监听信号

    我正在用 Rust 为 Windows 编写一个小 shell 并且想杀死Command我生成并阻止我的 shell 退出 有没有办法捕获WindowsSIGINTRust 中的等价物 有a crate https crates io cr
  • 如何通过页面刷新使Angular服务中的数据持久化

    我有一个 Angular 服务 如下所示 var lunchrServices angular module lunchrServices lunchrServices service authService function var us
  • 应用程序初始化时的 Firebase 身份验证

    这是作品 console log User ID user id Provider user provider 但这不是 scope authenticated currentUser user id 我的目标是获取一些身份验证变量 电子邮
  • 如何删除 SQL Server 数据库中所有表中的所有行?

    如何删除 SQL Server 数据库中所有表中的所有行 请注意 如果您设置了任何引用完整性 则 TRUNCATE 将不起作用 在这种情况下 这将起作用 EXEC sp MSForEachTable DISABLE TRIGGER ALL
  • 重复捕获组

    我有一个包含零个或多个数字 然后包含零个或多个字符的字符串ABCD 我想将数字解析为一组 然后将所有字符解析为每个字符的单独组 我试过了 0 9 ABCD 正确捕获数字 但仅捕获最后一个字母 0 9 ABCD 正确捕获数字 但首先捕获一组中
  • 权限错误:[Errno 13] 权限被拒绝

    我收到此错误 Exception in Tkinter callback Traceback most recent call last File C Python34 lib tkinter init py line 1538 in ca
  • 删除/清除 django.contrib.messages

    我想有条件清除django contrib messages 这两个问题中讨论的解决方案都不起作用 删除所有 django contrib messages https stackoverflow com questions 3951831
  • Angular v4:我们将数据存储在服务或组件中还是两者都存储?

    Angular v4 我们将数据存储在服务或组件中还是两者都存储 在查看了相当多的教程以及阅读了 Angular 的文档之后 我仍然不清楚这个主题 https angular io tutorial toh pt2 https angula