Angular 在两个组件之间共享数据7

Angular 在两个组件之间共享数据7,angular,Angular,大家好,谢谢你们抽出时间 我正在创建一个与角7和路由网站。在一个显示home(默认视图)的组件中,我有一个输入,询问person的姓名 我想将此数据传递给我的其他组件。在谷歌搜索了很长时间后,我发现我应该使用服务,但这真的是共享数据的唯一选择吗?有人举过这样的例子吗 ps:stackoverflow的一个答案是“您可以使用共享服务(使用observable)或使用ngrx/store。”您可以从技术文档中学习角度特性 根据期望和逻辑,您可以通过几种方式共享数据: 如果要将对象从父组件发送到子组

大家好,谢谢你们抽出时间

我正在创建一个与角7和路由网站。在一个显示home(默认视图)的组件中,我有一个输入,询问person的姓名

我想将此数据传递给我的其他组件。在谷歌搜索了很长时间后,我发现我应该使用服务,但这真的是共享数据的唯一选择吗?有人举过这样的例子吗


ps:stackoverflow的一个答案是“您可以使用共享服务(使用observable)或使用ngrx/store。”

您可以从技术文档中学习角度特性

根据期望和逻辑,您可以通过几种方式共享数据:

  • 如果要将对象从父组件发送到子组件,则父/子组件可以在子组件中使用@Input;如果要将事件从子组件发送到父组件,则可以使用@Output(此事件可以带来数据)
  • 在同一个模块中,您可以将事件发射器与@Injectable service一起使用
  • 如果要在客户端上保存数据,可以使用本地存储和会话存储
  • 如果要在服务器上保存数据,可以使用HTTP或WebSocket

现在,我设法使用本地存储来实现它,这样它就可以工作了。 不过,这些天我仍需要深入研究传递数据,以便在涉及getter和setter时更好地理解它。 现在看起来是这样的: 组件1 HTML:

<button (click)="saveData($event)" class="btn btn-outline-secondary" type="button"
            id="button-addon2">Send</button>
第2部分:

visitor = localStorage.getItem('visitor');

也许有人会发现它很有用。

您必须更具体一点,这个数据应该具有多大的持久性,您是否要将它传递到后端?主组件是第二个组件的父组件还是同级组件?组件是同级组件(主页联系人页)。数据不需要保存,只要在用户离开网站之前可以访问即可。理论是,在主页上,用户输入自己的姓名,当他点击联系页面时,我需要显示该信息(姓名)。这里绝对没有理由使用状态管理。两个同级组件可以共享一个父组件,该父组件可以通过表单中的回调处理用户信息的提交,并将其作为一个道具注入到另一个组件中。当组件层次结构较深或其他复杂性足以证明开销的合理性时,状态管理变得非常有用。在您所说的情况下,我只使用回调方法。如果您使用路由,有许多其他方法来传递数据,如下所述:
visitor = localStorage.getItem('visitor');