Angular最佳实践:将数据作为输入传递或使用查询参数

时间:2019-01-14 14:53:02

标签: angular angular-router

我正在设计一个应用程序,将其与更好的做法相混淆。我想根据从其他组件获得的输入发出http请求。因此,我有2种不同的方式将数据从一个组件发送到进行API调用的组件(通过服务)。

  • 使用@Input()
  • 通过从网址提取查询参数(因为我想将输入数据保留在网址中)

我不确定是使用ngOnChanges生命周期挂钩(this._router.parseUrl(this._router.url).queryParams.fund1)中的路由器服务的parseUrl方法获取数据,还是仅使用ngOnChanges进行以下检查?

if (changes['fund1'] &&
    changes['fund1'].currentValue &&
    changes['fund1'].previousValue !== changes['portIdFund1'].currentValue
  )

将Router服务注入到组件中还是仅利用Angular本机@Input很好?我必须用后面的(@Input)写更多的代码。

1 个答案:

答案 0 :(得分:0)

将路由器服务注入组件是否很好?

是的,这是使用服务的方式/原因。

不要通过包含太多可以从服务轻松获得的输入而使组件复杂化。

但这并不意味着您可以鲁re使用服务。您需要保持平衡。