Angular 2,@ Input或OnInit生命周期钩子和命中服务器?

时间:2016-09-04 14:38:20

标签: angularjs performance input server

我想知道哪种解决方案更好。我有网址:http://localhost:3000/product/3。我有两个选项将Product model传递给组件:

  1. 使用@Input并传递产品(来自其他组件)而无需点击服务器
  2. 实现OnInit生命周期钩子,并在用户调用此URL时始终点击服务器。
  3. 当然,在第一个解决方案中性能更好,但我不确定这是否是正确的解决方案。任何推荐或其他问题都可以出现在第一个解决方案中?提前谢谢。

1 个答案:

答案 0 :(得分:1)

这取决于您尝试从服务器提取哪些数据。我们来谈谈两个案例:

  1. 如果服务器将托管数百万个产品,那么在用户要求特殊产品之前,绝对没有理由获得所有这些产品。因此,在这种情况下,onInit请求会更合理。
  2. 但是如果您知道服务器总是固定少量产品,那么就说--50种产品。我会说在这种情况下你可以把它们放在应用程序的初始阶段,并确保每次用户在产品之间跳转时都不必等待。
  3. 在生产现实案例中,#1更为常见,因为您永远不知道内容管理者会推送多少产品。但请根据您的业务规则做出决定。