【发布时间】:2019-03-09 03:32:25
【问题描述】:
在我看来,在几乎所有我们指定组件@Inputs/@Outputs 的情况下,我们也可以不使用任何@Inputs/@Outputs,而是使用@ViewChild 来访问组件属性直接地。例如,考虑以下两个可能的寻呼机 API:
选项 1:将当前页面和总页面公开为 @Inputs,为下一页/上一页请求创建事件发射器 (@Outputs)。
<pager
[currentPage]="..."
[totalPages]="..."
(requestsNextPage$)="..."
(requestsPreviousPage$)="..."
></pager>
选项 2:为当前页面和总页面创建简单属性,为下一页/上一页请求创建可观察对象/主题,并通过 @ViewChild 公开。
<pager></pager>
@ViewChild(PagerComponent)
pager: PagerComponent
pager.currentPage = ...
pager.totalPages = ...
pager.requestsNextPage$.subscribe(...)
pager.requestsPreviousPage$.subscribe(...)
我的问题是,如果这两种选择在大多数情况下都同样可行,那么首选/最佳做法是什么?为什么?
【问题讨论】:
-
简单,可重用。基于组件的架构的全部要点。
-
@penleychan 我不确定你的意思。这应该回答这个问题吗?我了解基于组件的架构,我的问题是 - 以上两个可能的 API 用于首选组件,为什么?是否有一般规则,还是视具体情况而定。
标签: angular