Angular:关于何时制作自定义管道与组件的规则

Posted

技术标签:

【中文标题】Angular:关于何时制作自定义管道与组件的规则【英文标题】:Angular: Rules on when to make something a custom pipe vs component 【发布时间】:2017-09-14 22:25:27 【问题描述】:

关于何时使用自定义管道以及何时使用自定义组件有什么规则吗?

这些是经验法则吗(如下)?

如果需要非纯文本 html,请使用组件?灵感来源:https://***.com/a/34504446/170451 如果某些内容不是交互式的(静态输出),请使用管道?

文档似乎没有直接回答这个问题:https://angular.io/docs/ts/latest/guide/pipes.html

管道可以被认为是“穷人的组件吗?”


管道相对于组件有什么优势吗?

我的猜测:

更短的语法/表现力 性能优势(构建时?运行时?) 使用纯文本有什么好处?

这个说法(这是我的猜测)是否成立?

Everything that can be done with a pipe,
can be done (though perhaps at a higher cost) with a component as well?

【问题讨论】:

【参考方案1】:

根据相同的文档:

管道转换模板内的显示值

因此,如果您正在转换显示的值,例如格式化日期或过滤列表,那么管道是有意义的。

如果要显示 HTML,请使用组件。

2015 年使用 innerHtml 的答案不被视为“最佳实践”,应仅限于最后的手段。

【讨论】:

谢谢。赞成。但是,如果以一种非常一般的方式处理“管道在模板中转换显示的值”,则可以说组件也“在模板中转换显示的值”(在某种非常一般的意义上)。虽然我知道根据标准要画一条线。

以上是关于Angular:关于何时制作自定义管道与组件的规则的主要内容,如果未能解决你的问题,请参考以下文章

如何降级使用 angular2 编写的自定义管道以在 angular 1.5 中使用?

在 Angular 应用程序中抛出错误

ng2自定义管道

Angular 2单元测试:自定义管道错误找不到管道

找不到管道:Angular 5 自定义管道

Angular2:找不到自定义管道