对于 Angular 2 应用程序,组件从父级接收数据更好,还是让组件自包含更好?

For Angular2 apps, is it better for components to recieve data from parent, or have components self-contained

Angular2 能够创建包含组件、服务、模型等的模块。基本上,通过应用程序的共享模块提供的独立单元。

在我开始开发的应用程序中,我的页面正在变成组件的集合。页面本身是否应该负责检索页面所需的所有数据,然后将数据作为需要数据的组件的属性传递?或者,让每个组件负责利用模块方法检索其数据是否更好,其中用于检索数据的服务是模块的一部分?或者,使用适合给定情况的任何方法?

如果正确答案是使用适合给定情况的任何方法,那么您使用什么准则来确定父页面是否提供数据,或允许子组件自包含并检索其自己的数据?

感谢您的意见。

将应用程序拆分成模块,这有助于延迟加载,并根据 DDD 聚合根来考虑它是一个好的开始。

然后在模块中,您可以使用帮助服务通过 Http 服务检索数据,并且可以将它们注入路由组件。

路由组件充当 MVC 控制器,从服务中获取数据,从路由中获取参数,并将所有内容连接在一起。

那么您可以拥有智能或笨拙的组件。

如果一个组件有配套服务/与其他东西交互,它就是一个智能组件,它被认为是不纯的。

虽然哑组件仅通过 @Input() 获取输入并且仅通过 @Output() 发送事件。

智能组件通常由多个哑组件组成。 因为哑组件更容易测试。