2011-04-04 67 views
18

儘管我在幾個月後關注backbone.js,並且通過大量的教程進行了工作,但我仍然對骨幹(或者我的技能)沒有足夠的信心將它用在更大的項目中。backbone.js項目的最佳實踐是什麼?

我的經驗是,backbone.js教程在質量上差別很大,有些非常過時(特別是骨幹文檔中的示例待辦應用程序)。

所以我想知道你的backbone.js最佳實踐/食譜?你如何處理嵌套的集合/視圖? JSON序列化?模型之間更復雜的查詢?

+0

您能否具體說明您的問題。你遇到了什麼問題? – 2011-04-08 04:41:56

+0

例如我遇到了Backbone.View的一些小問題...我沒有this.el渲染了我的視圖,結果所有事件處理程序在第一次模板刷新後都丟失了。但是我想討論其他領域的一些失敗,例如嵌套視圖,模型之間的關係,模型的繼承...... – fbuchinger 2011-04-08 13:18:32

+2

我認爲你應該把它分解成多個問題,並在每個問題中包含其他問題的鏈接。 – jcollum 2012-08-08 02:52:08

回答

27

這裏是你似乎的問題列表來問:

Backbone.js的最佳實踐/食譜
我的頭號實踐/配方潛入backbone.js code閱讀它,通過它步驟與js調試器甚至。代碼有很好的文檔記錄,是現代JS代碼應該是的一個很好的例子。

如何處理嵌套的集合/視圖?
Afaik沒有「簡單的方法」來處理嵌套集合和處理子集合中發生的事件。你必須執行它。儘管如此,我還沒有處理過一系列集合,所以也許可以通過重構「數據模型」來避免它。具有一組模型的模型本身滿足嵌套模型的大部分要求。

就意見而言,您基本上可以控制它們如何渲染。骨幹提供的視圖只不過是一種機制,可以將相應的模型更改爲您的呈現代碼。你實現了渲染。所以,如果你想嵌套視圖,你可以使用支持partials的模板引擎(如果我正確理解你的意思是嵌套視圖)。

JSON序列化
什麼是你的問題?骨幹文檔說「強烈建議包含json2.js」

模型之間更復雜的查詢?
再說一次,你的問題是什麼?骨幹網爲您提供結構做自己的事,你必須實現自己的複雜模型
之間

關係再次,要實現模型。您的模型可以包含其他模型。你對他們做什麼以及你如何互動取決於你。根據我的經驗,它不需要在JavaScript中複製後端數據模型。很可能您的前端模型比後端模型更簡單。

模型繼承
通過使用backbone.js,您已經使用模型繼承。這是當你寫,會發生什麼VAR爲MyModel = Backbone.Model.extend ...

對不起,不進入更詳細的,但像托馬斯·戴維斯說,這些問題是非常模糊的。對於描述您遇到的特定問題的更詳細問題,您會得到更詳細的答案。

+0

似乎解釋個人經驗。不是新手如何移動。 – 2013-03-23 17:50:46

+0

您可以試用我的Backbone.js模式和最佳實踐(http://www.amazon.com/dp/1783283572),其中詳細討論了所有這些要點。 – Swar 2014-02-12 11:47:06

2

我認爲這些問題有點模糊,需要在一個簡單的帖子中回答。

我即將完成在Backbone.js完成的完整的Web應用程序,並且還想討論這些最佳實踐,以便在啓動之前快速修改一些選擇。

我現在正在backbonetutorials.com上工作,最終嘗試將這些難題集中在一起。

保存藏品的解決方案可能是第一個問題,但如果有一些社區參與,那麼這將是非常棒的。

+0

我同意這些問題太模棱兩可。我認爲您的網站的一個很好的功能是使用骨幹的github回購列表。 – 2011-04-08 04:41:21

+0

我知道,stackoverflow不是討論發展策略的最佳地方,但目前沒有更好的論壇出現在我的腦海裏。 – fbuchinger 2011-04-08 13:22:52

+0

它是詢問策略的好地方,但要具體說明您面臨的問題。 – 2011-04-08 18:52:10

7

由於這個問題的答案可能太長,因爲它的一般範圍,我會在這裏留下這些鏈接。我希望他們能夠幫助其他人找到這個問題,因爲他們幫助我更好地理解了這個框架,並且擁有更好的應用程序,高效地使用了內存,更好的文件組織和更易讀和可維護的代碼:

http://ricostacruz.com/backbone-patterns/

http://kilon.org/blog/2012/11/3-tips-for-writing-better-backbone-views/

http://blog.involver.com/2012/01/26/testing-backbone-js-best-practices-2/

http://lostechies.com/derickbailey/2011/09/15/zombies-run-managing-page-transitions-in-backbone-apps/(過時的解決方案,但真正重要的閱讀和理解!)

https://github.com/thomasdao/Backbone-View-Manager

我希望我從一開始就有這個。

乾杯!

0

在開發基於Backbone.js的應用程序時,您可以關注很多事情。例如:

  1. 定製插件和混入
  2. 嵌套視圖/子視圖
  3. 更新
  4. 模板管理局部視圖 - 儲存,在前端和後端
  5. 序列化模型
  6. 預編譯
  7. 關係數據模型
  8. 使用事件調度程序
  9. Subrouti NG
  10. 大規模應用架構等

有很多概念,這對於開發基於應用的單頁Backbone.js的關鍵。你可以試試我的書Backbone.js Patterns and Best Practices它將詳細討論所有這些要點。