Angular2 +区分绑定变量的输入/输出

时间:2018-03-28 08:45:36

标签: angular typescript

我的第一个Angular 5应用程序包含几个组件,每个组件都有一组属性可供其模板使用,另一组使用@Input()和@Output()与其他组件进行通信。我想知道是否有风格指南,惯例或至少一些区分这些属性的良好做法。

我想将它们与我的组件的外部用户的观点区分开来,原因如下:

  • 在开发组件时,绑定属性更有可能发生变化

  • 绑定属性通常取决于一系列不合适的API步骤(即单独更新表单字段,然后单击不带参数的保存按钮)。 API替代方案是单个保存方法。搜索类似。

  • 某些属性和操作仅在您的视图的特定上下文中有意义,并且对使用您的组件的其他人来说是一种无用且混乱的噪音。

我最初的想法是绑定属性应该是私有的,输入和输出是公共的,以指示外部组件只能使用后者。但是,我发现使用AOT编译不可能使用私有变量进行绑定,并且通常不鼓励使用,这也意味着所有单元测试都必须经过DOM,这使得它们变得更加复杂。

我还考虑将下划线前缀 _name 用于面向模板的属性,但是当我搜索它时,通常不鼓励使用TypeScript和Angular,尽管没有对此上下文的任何引用。不可否认,它可能会导致您在同一组件中拥有私有(完全内部),强调(面向模板)和公共(面向外部)变量的情况,尽管我不相信这实际上会是一件坏事。

1 个答案:

答案 0 :(得分:0)

您可以查看angular style guide

目前,命名输入和输出属性似乎没有任何特定的命名约定。我个人倾向于将输入和输出属性放在我的组件顶部,显然可以正确记录它。

希望有所帮助