2017-04-11 41 views
3

所以我有這個新的項目,在每個視圖中都有這條線。Backbone.Layout.extend和Backbone.view.extend之間的區別

Backbone.Layout.extend({ /*...*/ }) 

但是,當我看着骨幹和其他教程的文檔,它具有

Backbone.View.extend({ /*...*/ }) 

而且各方面的意見都有initializeserializeafterRender功能。我試圖搜索它,但沒有發現任何有用的東西。

回答

2

項目所使用backbone.layoutmanager

提供用於骨幹網內組裝佈局和視圖的邏輯基礎。設計適應性強,可配置無痛集成。在瀏覽器和Node.js環境中都經過了全面的代碼覆蓋測試。

看在source of this library,我們可以看到,它只是一個專門的Backbone.View

var LayoutManager = Backbone.View.extend({ // line 53 
// ... 
}); 
// ... 
// Expose through Backbone object. 
Backbone.Layout = LayoutManager; // line 955 

它增加了這些methods and properties

  • afterRender
  • cleanup
  • getView
  • getViews
  • insertView
  • insertViews
  • removeView
  • renderViews
  • setView
  • setViews
  • then
  • useRAF
  • serialize(在維基未記錄)

initialize function是Backbone視圖中的默認設置,它是空的,它的意圖是用自定義初始化代碼重寫。

爲了更好地瞭解一個項目是怎麼回事的,看它加載的依賴關係(包含在HTML <script>標籤.js文件)。

+0

感謝您的快速回復,串行化函數是否也在此佈局管理器庫下,因爲這不在他們的文檔中? –

+0

@SouravPrem是的,它確實帶有layoutmanager,但沒有記錄。我不得不看看[源代碼](https://github.com/tbranyen/backbone.layoutmanager/blob/5ae3117659193ee3ca38f6a53b0ad2e07bda3dde/backbone.layoutmanager.js)。這並不是那麼龐大,我強烈建議深入研究,以真正掌握正在發生的事情。 –

+0

只是最後一件事..我對此很新,所以還有其他的出發點,這樣我就不會感到不知所措。如何在短時間內學習它? –