代码之家  ›  专栏  ›  技术社区  ›  Arseni Mourzenko

AngularJS中的大量属性是否表示存在问题?

  •  0
  • Arseni Mourzenko  · 技术社区  · 8 年前

    普遍的共识是,除非有充分的理由,否则方法的参数数量应为 足够小 .

    多少钱 作者不同(史蒂夫·麦康奈尔在 代码已完成 ,罗伯特·C·马丁在 ); 我想大多数开发人员都会同意,如果一个类中的大多数方法包含五个或更多参数,或者如果一个给定方法包含十个以上参数,则需要进一步研究。

    该准则是否适用于AngularJS属性?我是说属性 hello something

    <my-component hello="world" something="abc" ...></my-component>
    

    一个实际案例是,我正在审查一个项目,其中有一堆AngularJS组件和指令,其中包含8到10个属性,有些包含多达15个属性。如果这些是方法,我会发出警报。然而,我不确定AngularJS的特殊性,这可以证明有一个非常平坦的结构,而不是将属于一起的属性分组到单独的对象中。

    我想这是一个原因 对属性进行分组是为了能够以更精细的方式定义属性样式(单向等)。

    2 回复  |  直到 8 年前
        1
  •  1
  •   Community Mohan Dere    6 年前

    考虑到html对属性没有限制,angularjs对绑定也没有限制,由于绑定的数量,这不会成为问题。

    然而,这可能是一个问题,至少在设计方面,这是非常依赖于每种情况。也许你说的是 哑组件 ui-gmap-google-map directive 可能有很多绑定,例如:

    <ui-gmap-google-map
        center="map.center"
        zoom="map.zoom"
        dragging="map.dragging"
        bounds="map.bounds"
        events="map.events"
        options="map.options"
        pan="true"
        control="map.control">
    </ui-gmap-google-map>
    

    然而,如果你说的是 智能组件 ,比如说一个页面组件指令,上面有太多的绑定,看起来该组件不是那么智能,它依赖于太多的绑定。

    正如您举例说明的函数参数情况,因为绑定应用相同的规则,以使函数更负责任,并且尽可能纯净。另一方面,组件要求其职责牢固且单一,因此绑定是履行其职责所需的参数。

        2
  •  1
  •   Aniruddha Das xing    8 年前

    我要说的是,属性需要如何从视图传递到组件类,不应该有任何限制。

    我们应该称之为绑定到属性吗

    我想说的是,您应该将该属性称为html语法,我们通过将特殊变量绑定到此属性来将数据传递给组件类。

    此外,这些属性值不是作为函数参数传递的,而是作为类中的变量传递的。

    HTML属性不能限制为5或10。您可以根据需要在UI中指定属性的数量。有人说角度组件是新标签和html 6之类的

    在这里,我通过添加两个属性将2个值传递给我的子组件

    在我的类中,我只有变量来处理它。

    export class EditComponent implements OnInit {
    
      @Input() text: string;
      @Output() editDone = new EventEmitter<Object>();
      private originalText: string;
    

    希望有帮助。