簡體   English   中英

使用@constructor和@static記錄Ember應用

[英]Documenting Ember apps with @constructor and @static

諸如YUIDocs之類的文檔工具允許您在注釋塊中使用@class標記來標識和描述類(對象類)。 每個標識的類都需要一個@static@constructor標記,定義如下:

  • @constructor指示該類是可實例化的(使用new關鍵字創建)。
  • @static指示您不應使用new實例化該類。 您可以靜態調用類的所有方法。

在Ember中,您經常使用extend()創建子類。 據我所知,這不會創建類的新實例。 但是,即使您使用extend()來定義它們,其中許多定義(例如,路線的控制器)也是單例的。

因此,我的問題是:在余燼應用程序中記錄類的常見情況下,您將使用@constructor vs @static嗎? 這樣的例子是:

  • 初始化器
  • 路由器
  • 轉接器
  • 序列化器
  • 轉變
  • 路線
  • 商店
  • 楷模
  • 控制器
  • 觀看次數
  • 組件
  • 混合蛋白

我在這里沒有包括Handlebars助手,因為我認為它們實際上是方法,而不是類,但是如果我錯了,我將糾正此問題。

  • 初始化程序-在Ember內部的靜態實例上進行方法調用。
  • 路由器-靜態實例(盡管從技術上講是創建的)
  • 適配器-@constructor
  • 序列化器-@constructor
  • 轉換-@constructor,假設您正在談論DS.Transform
  • 路線-@constructor
  • Store(這是Ember Data,它們初始化實例並將其連接到容器中)
  • 模型-@constructor,如果我們談論的是DS.Model,
  • 控制器-@constructor
  • 適配器-@constructor
  • 視圖-@constructor
  • 組件-@constructor
  • Mixins-@constructorish,可以創建Ember.Mixin,盡管實例不是。 而且您不使用擴展來生成不同類型的混合。

路由是類定義。 使用擴展時,您不是在創建單例,而是在定義Ember可以使用的類。 如果ember需要它,它將通過命名模式知道它,並將嘗試使用您定義的類來創建它。 整個Ember使用相同的模式。 Singleton是默認模式,但有一些例外,例如itemController或在模板中使用render時,我確定還有很多其他模式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM